WTL自绘控件(继承COwnerDraw)
1.添加自绘控件类,使其派生自COwnerDraw,例如
class MyButtonEx:public CWindowImpl<MyButtonEx, CButton>
,public COwnerDraw<MyButtonEx>
2.在自绘控件类中添加消息映射CHAIN_MSG_MAP_ALT,例如:CHAIN_MSG_MAP_ALT(COwnerDraw<MyButtonEx>, 1)
3.END_MSG_MAP之前要添加DEFAULT_REFLECTION_HANDLER()
4.重写void DrawItem(LPDRAWITEMSTRUCT lpds)等函数,在此函数中完成自绘工作
5.修改自绘控件类的窗口样式,添加OWNERDRAW属性,例如BS_OWNERDRAW
6.不要使用DDX_CONTROL关联控件变量与控件ID!而是使用SubclassWindow来实现,否则看不出自绘效果!(这一点浪费了我半小时找原因)