當工程中有擴展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
注意,即使你不增加這段代碼,編譯實際是正常通過的,程序也能用,只不過提示錯誤很不舒服,一改了之。