无法从“LRESULT (__thiscall 转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)
各位高手帮帮忙啊小弟最近项目里需要用到串口响应函数处理需要用到消息WM_COMM_RXCHAR但一编译就出现下列错误:首先我在,h文件里定义了#defineWM_COMM...
各位高手帮帮忙啊 小弟最近项目里需要用到串口响应函数处理 需要用到消息WM_COMM_RXCHAR 但一编译就出现下列错误:
首先我在,h文件里定义了
#define WM_COMM_RXCHAR WM_USER+7
afx_msg LRESULT OnComm(WPARAM ch,LPARAM port)
在.CPP文件中的消息映射处
ON_MESSAGE(WM_COMM_RXCHAR,OnComm)
LRESULT CMonitorCenterApp::OnComm(WPARAM ch,LPARAM port){return 0;}
返回值是LRESULT 、参数都是(WPARAM ch,LPARAM port)也没错啊。。为什么还出现下列提示的错误啊。。。。求解。。。 万分感激!
错误 2 error C2440: “static_cast”: 无法从“LRESULT (__thiscall CMonitorCenterApp::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” f:\工作学习资料\军都山\jds\source\monitorcenter\monitorcenter.cpp 44 1 MonitorCenter
另外。。。木有财富值了 不好意思啊。。 展开
首先我在,h文件里定义了
#define WM_COMM_RXCHAR WM_USER+7
afx_msg LRESULT OnComm(WPARAM ch,LPARAM port)
在.CPP文件中的消息映射处
ON_MESSAGE(WM_COMM_RXCHAR,OnComm)
LRESULT CMonitorCenterApp::OnComm(WPARAM ch,LPARAM port){return 0;}
返回值是LRESULT 、参数都是(WPARAM ch,LPARAM port)也没错啊。。为什么还出现下列提示的错误啊。。。。求解。。。 万分感激!
错误 2 error C2440: “static_cast”: 无法从“LRESULT (__thiscall CMonitorCenterApp::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” f:\工作学习资料\军都山\jds\source\monitorcenter\monitorcenter.cpp 44 1 MonitorCenter
另外。。。木有财富值了 不好意思啊。。 展开
1个回答
展开全部
无法从
“LRESULT (__thiscall CMonitorCenterApp::* )(WPARAM,LPARAM)”
转换为
“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
MFC消息机制是对于窗体而言的,换句话说,只有窗体类或子类才能用消息。
你关联的消息
ON_MESSAGE(WM_COMM_RXCHAR,OnComm)
其中OnComm必须是窗体类里面的方法。不能是app的。
你的OnComm应该是CMonitorCenterApp::OnComm而不是CxxxWnd::OnComm
“LRESULT (__thiscall CMonitorCenterApp::* )(WPARAM,LPARAM)”
转换为
“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
MFC消息机制是对于窗体而言的,换句话说,只有窗体类或子类才能用消息。
你关联的消息
ON_MESSAGE(WM_COMM_RXCHAR,OnComm)
其中OnComm必须是窗体类里面的方法。不能是app的。
你的OnComm应该是CMonitorCenterApp::OnComm而不是CxxxWnd::OnComm
更多追问追答
追问
哦 高手就是高手啊 一针见血 非常感谢! 如果我想在非窗体类里处理怎么办啊?
追答
非窗体类里面只有组件自身的消息(描述不太准确,就是WM_COMMAND消息)。不能有用户自定义消息。
你可以放在窗体里面然后用回调的形式,将非窗体的处理函数注册给窗体类,回调实现。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询