WTL 中怎么将界面重绘另做为一个对象(类)

WTL 中如何将界面重绘另做为一个对象(类)
我现在重绘了窗口的标题栏,可是代码实在太多太乱,我想将它另做为一个类,直接调用就可以了,怎么做?尤其是里面还有各种消息映射,OnNcPaint(),OnSize(),OnPaint()如此种种,这样的消息映射又如何映射到我的子类中,具体怎么做?最好给一下示例源码,本人新手,谢谢。
界面 对象 重绘 WTL

------解决方案--------------------
不说了,你自己去尝试。
template <class T>
class PaintImpl
{
public:
BEGIN_MSG_MAP(PaintImpl)
  MESSAGE_HANDLE(WM_PAINT,OnPaint)
END_MSG_MAP()
private:
  LRESULT OnPaint(UINT,WPARAM,LPARAM,BOOL&)
{
T* t = (T*) this;
CPaintDC dc(t->m_hWnd);
dc.TextOut(10,10,"Just try");
}
};
class CMainDlg: public CDialogImpl<CMainDlg>, public PaintImpl<CMainDlg>
{
public:
BEGIN_MSG_MAP(CMainDlg)
  CHAIN_MSG_MAP(PaintImpl<CMainDlg>)  
END_MSG_MAP()
};
ok。