今天真叫郁闷了,以前没用过on_message,今天写一个程序遇了一下,竟然遇到这样的错误:error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
在匹配目标类型的范围内没有具有该名称的函数
栓查了一遍又一遍 ,真快无语了,找不到找错误吧,上MSDN找了找,百度下又找了找,最后总算解决了如下: 首先看看这个宏 ON_MESSAGE(message,OnMyMessage);
OnMyMessage返回值必须为LRESULT,其形式为:afx_msg LRESULT OnMyMessage(WPARAM, LPARAM);如果不符合,则有错误提示:
error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
在匹配目标类型的范围内没有具有该名称的函数
这样总算找到问题了,原来那个消息处理函数返回值是VOID,改了改,返回LRESULT,在函数结尾加了个return NULL, OK,这样总算通过了。