首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

学习孙鑫老师ON_MESSAGE遇到有关问题了,大家帮帮忙

2012-08-13 
学习孙鑫老师ON_MESSAGE遇到问题了,大家帮帮忙一直按步骤做的,但出现错误,这是学习发送一个自定义消息视频

学习孙鑫老师ON_MESSAGE遇到问题了,大家帮帮忙
一直按步骤做的,但出现错误,
这是学习发送一个自定义消息
视频步骤是
1:
在MainFrm.h
定义#define UM_PROGRESS WM_USER+1
声明afx_msg void OnProgress();
2:
在MainFrm.cpp中
消息映射ON_MESSAGE(UM_PROGRESS,OnProgress)
实现void CMainFrame::OnProgress();

运行后出现error C2440: “static_cast”: 无法从“void (__thiscall CMainFrame::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
错误指示的是消息映射那步
大家帮忙看看 谢谢了~~

[解决办法]

C/C++ code
//1://在 MainFrm.h//除定义消息#define UM_PROGRESS WM_USER + 1//再定义一个:#define ON_UM_PROGRESS() \    { UM_PROGRESS, 0, 0, 0, AfxSig_vv, \    (AFX_PMSG) (AFX_PMSGW) \    (static_cast< void (AFX_MSG_CALL CWnd::*)(void) > \    ( &ThisClass :: OnProgress)) } ,//处理函数声明:afx_msg void OnProgress();//2://在 MainFrm.cpp 中//添加消息映射:ON_UM_PROGRESS()//实现:void CMainFrame::OnProgress(){    //...........}
[解决办法]
处理定义的MESSAGE消息跟你处理普通的MFC提供的消息函数定义是不一样的


以下是MSDN上面给的说明,楼主多看看MSDN,好东西啊

ON_MESSAGE(message, memberFxn )

message
The message ID.

memberFxn
The name of the message-handler function to which the message is mapped.

The type of the function must be afx_msg LRESULT (CWnd::*)(WPARAM, LPARAM).

所以,你定义的消息处理函数,需要按照afx_msg LRESULT (CWnd::*)(WPARAM, LPARAM).这个格式定义

热点排行