VS2005对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2005下编译不通过 ON_MESSAGE(WM_message,OnMyMessage); 解决方法如下: 例如:TransparentWnd.cpp中ON_MESSAGE(WM_LIBEN,OnLiben): 第一:把原来的消息函数返回值类型改为LRESULT(找到OnLiben定义,如Viod CTransparentWnd::OnLiben(WPARAM wParam,LPARAM lParam)改成LRESULT CTransparentWnd::OnLiben(WPARAM wParam,LPARAM lParam),声明处也要改,如afx_msg LRESULT OnLiben(WPARAM wParam,LPARAM lParam);); 第二:函数内可以随便写个return TRUE; 第三:然后消息函数的参数必须改写成(WPARAM wParam,LPARAM lParam)而不论这两个参数是否用得到; 第四:消息映射如ON_MESSAGE(WM_message,& OnMyMessage)。 |