真彩工具栏在vc6正确,在vs2005中BUG,谁能解决?
me115 2008-10-20 05:19:53 在网上找到了一个CTrueColorToolBar 支持工具栏的真彩图
http://www.vckbase.com/document/viewdoc/?id=1069
在VC6下编译没有问题 但在.Net下编译不过,
出错的是这一条语句: ON_NOTIFY_REFLECT(TBN_DROPDOWN, OnToolbarDropDown)
报错信息是
c:\MyTest\TrueColorToolBar.cpp(42): error C2440: “static_cast” : 无法从“void (__thiscall CTrueColorToolBar::* )(NMTOOLBARA *,LRESULT *)”转换为“void (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)”
察看了一下VC6下ON_NOTIFY_REFLECT的定义
#define ON_NOTIFY_REFLECT(wNotifyCode, memberFxn) \
{ WM_NOTIFY+WM_REFLECT_BASE, (WORD)(int)wNotifyCode, 0, 0, AfxSig_vNMHDRpl, \
(AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*))&memberFxn },
而ON_NOTIFY_REFLECT在.Net下的定义变成了
#define ON_NOTIFY_REFLECT(wNotifyCode, memberFxn) \
{ WM_NOTIFY+WM_REFLECT_BASE, (WORD)(int)wNotifyCode, 0, 0, AfxSigNotify_v, \
(AFX_PMSG) \
(static_cast<void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*) > \
(memberFxn)) },
请问这个该如何解决,是.Net自己的BUG吗?