WTL 重画CButton DrawItem不响应?
对话框上 有一个按钮m_btnOK
class CMainDlg;
typedef CImgDialogBase<CMainDlg, IDB_BITMAP_DIALOG_WAITING> CImgDialogBaseForMainDlg;
class CMainDlg : public CImgDialogBaseForMainDlg
, public CWinDataExchange<CMainDlg>
{
BEGIN_DDX_MAP(CMainDlg)
DDX_CONTROL(IDOK, m_btnOK)
END_DDX_MAP()
CImgButton<IDB_BITMAP_BTN_OK_NORMAL, IDB_BITMAP_BTN_OK_HOVER, IDB_BITMAP_BTN_OK_DOWN, IDB_BITMAP_BTN_OK_DISABLED>
m_btnOK;
};
CImgButton 类如下:
template <UINT T_NormalBitmapID, UINT T_HoverBitmapID, UINT T_DownBitmapID, UINT T_DisableBitmapID>
class CImgButton : public CWindowImpl< CImgButton< T_NormalBitmapID, T_HoverBitmapID, T_DownBitmapID, T_DisableBitmapID>, CButton>
, public COwnerDraw<CImgButton< T_NormalBitmapID, T_HoverBitmapID, T_DownBitmapID, T_DisableBitmapID> >
{
public:
CImgButton(){}
~CImgButton(){}
typedef CImgBkgndBase<CImgButton< T_NormalBitmapID, T_HoverBitmapID, T_DownBitmapID, T_DisableBitmapID>, T_NormalBitmapID> CImgBkgndForImgButton;
typedef COwnerDraw<CImgButton< T_NormalBitmapID, T_HoverBitmapID, T_DownBitmapID, T_DisableBitmapID> > COwnerDrawForImgButton;
BEGIN_MSG_MAP(CImgButton)
CHAIN_MSG_MAP_ALT( COwnerDrawForImgButton, 1)
DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()
void DrawItem ( LPDRAWITEMSTRUCT lpdis )
{
::MessageBox( NULL, _T("1"), _T("1"), IDOK);
}
};
我参照了 http://www.codeproject.com/wtl/WTL4MFC5.asp
在设计器里面,设置了 这个Button的 OWNER_DRAWER属性
但是
DrawItem 不响应
WTL7.5 VS2005