当工程中有扩展CListCtrl的类代码,并且有自绘单元格的操作,
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw)
编辑器语法智能提示就会对这个宏定义报错,似乎只有在vs2015环境(vc++ 2015版本)才有问题。
解决方法是新增一个宏定义,覆盖默认的宏定义,如下:
#if (_MSC_VER==1900)
#define ON_NOTIFY_REFLECT(wNotifyCode, memberFxn) \
{ WM_NOTIFY + WM_REFLECT_BASE, (WORD)(int)wNotifyCode, 0, 0, AfxSigNotify_b, \
(AFX_PMSG) \
(static_cast<void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*) > \
(memberFxn)) },
#endif
注意,即使你不增加这段代码,编译实际是正常通过的,程序也能用,只不过提示错误很不舒服,一改了之。