打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VSMFC中添加用户自定义消息及消息响应函数

VS MFC中添加用户自定义消息及消息响应函数

(2015-12-04 10:18:41)
分类: C
1. 在对应类的头文件中自定义消息。如:#define WM_MyMessage WM_USER+100 (MFC自有的消息都是在WM_USER内的,所以自定义的消息要比WM_USER大)

2.在头文件中声明消息处理函数,可用类向导中消息->添加自定义消息,添加的消息名为WM_MyMessage,自动添加消息处理函数。则系统自动在头文件中添加消息处理函数的声明,.cpp文件中添加消息映射处理及消息处理函数的定义,只需添加定义的具体内容即可。
声明的消息处理函数:afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAMlParam);
函数返回值类型为LRESULT,参数类型为WPARAM 和 LPARAM。
VC6中的消息处理函数为 afx_msgvoid OnMyMessage( WPARAM , LPARAM ); 
消息映射处理:
BEGIN_MESSAGE_MAP(CDialog1, CDialogEx)
ON_MESSAGE(WM_MyMessage, &CDialog1::OnMymessage)
END_MESSAGE_MAP()
消息处理函数的定义:
afx_msg LRESULT CDialog1::OnMymessage(WPARAM wParam, LPARAMlParam)
{
return 0;
}

3. 发送自定义消息:
SendMessage(WM_MyMessage,0,0);
或者 PostMessage(WM_MyMessage,0,0);

如果要定义系统唯一的消息让多个应用程序去处理,不同之处如下
1. 把上面2步骤中的宏 #defineWM_MyMessage (WM_USER+100) 使用  如下代替
 static UINT WM_MyMessage =RegisterWindowMessage("myMessage");
2.上面4步骤中的代码用如下代替
 BEGIN_MESSAGE_MAP(CTestDlg,CDialog)
     
……
    ON_REGISTERED_MESSAGE(WM_MyMessage,OnMyMessage)

END_MESSAGE_MAP()
3.测试消息时,如果要让多个应用程序都接收到这个消息,使用
 ::SendMessage(HWND_BROADCAST,WM_MyMessage, 0, 0);
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MFC 自定义消息 和 子对话框 父对话框 发送消息
vc6.0添加自定义用户消息的基本过程
Windows自定义消息
使用MFC自定义消息
MFC中自定义消息
Vc/MFC中自定义消息及其PostMessage触发使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服