MFC学习笔记——自定义消息的使用 .
2013-04-28 17:24
323 查看
简单概要
windows的消息机制在前面的几章已经介绍过了,今天来学习一下自定义消息。预备知识
看完前几章的文章。具体步骤
新建一个工程,名称为“MyMessage”,使用 Unicode 编码。具体界面可以如下:在界面设计处右击选择类向导,添加自定义信息。
添加完成之后就会在“现有处理程序”出现刚才的消息,点击“编辑代码”可以进入编辑代码状态。
这是自动生成的代码
我们会发现,我们这编译程序是编译失败的,因为我们虽然添加了自定义消息,但是还没有定义这个消息的ID。Visual Studio 不会给我们自动添加消息ID。
如果你的Visual Studio中也装有 visual assist 的话,你就会发现在如下图中有一个变量定义错误,这就是我们的消息。
下面让我们自定义一下这个消息。打开工程对话框的dlg.h,就是对话框的头文件。然后在最上面添加如下代码:
[cpp]
view plaincopyprint?
// 定义一下我的消息代码 至于为什么会用WM_USER+1,请看百度百科
// WM_USER_百度百科 http://baike.baidu.com/view/4146980.htm
#define WM_MY_MESSAGE WM_USER+0x001
// 定义一下我的消息代码 至于为什么会用WM_USER+1,请看百度百科 // WM_USER_百度百科 http://baike.baidu.com/view/4146980.htm #define WM_MY_MESSAGE WM_USER+0x001此时程序就可以编译通过了,然后在添加一些测试代码。如在按钮上添加如下代码:
[cpp]
view plaincopyprint?
void CMyMessageDlg::OnBnClickedBtnSendmessageToMe()
{
// SendMessage的具体详解请见百度百科
// SendMessage_百度百科 http://baike.baidu.com/view/1080187.htm
SendMessage(WM_MY_MESSAGE);
}
void CMyMessageDlg::OnBnClickedBtnSendmessageToMe() { // SendMessage的具体详解请见百度百科 // SendMessage_百度百科 http://baike.baidu.com/view/1080187.htm SendMessage(WM_MY_MESSAGE); }另外在消息接受的代码处修改为:
[cpp]
view plaincopyprint?
afx_msg LRESULT CMyMessageDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
MessageBox(_T("接受的我的自定义消息!"),_T("提示"),MB_ICONINFORMATION);
return 0;
}
afx_msg LRESULT CMyMessageDlg::OnMyMessage(WPARAM wParam, LPARAM lParam) { MessageBox(_T("接受的我的自定义消息!"),_T("提示"),MB_ICONINFORMATION); return 0; }这样我们点击给自己发送消息就可以看到程序自己给自己发的消息了。
总结拓展
SendMessage 不仅可以给自己发送消息,而且还可以为其他程序发送消息。可以尝试一下给其他程序发送消息。Demo下载
点击下载:点击下载
相关文章推荐
- [每日一学]MFC学习笔记——自定义消息的使用
- [转] MFC中自定义消息使用
- MFC学习笔记之二----------MFC框架程序及消息映射
- 【VC编程】笔记3---使用Win32SDK编程,模仿MFC的消息映射处理机制
- MFC使用SendMessage发送自定义消息实现进程间通信
- OpenCV学习笔记(8)VS2008 MFC下使用OpenCV2.0进行简单图像处理
- APIDemo学习笔记——在XML中使用自定义的View类
- uC/OS-II 学习笔记之:信号量、消息邮箱、消息队列之间的使用区别
- SpringMVC注记方式验证学习笔记——在注记消息中使用注记参数
- MFC中自由使用自定义消息
- MFC中自由使用自定义消息
- MFC用户自定义消息的使用
- MFC中使用自定义消息
- MFC中自由使用自定义消息
- IssueVision 学习笔记(一)-----使用SoapHeader传递Web Serivices自定义的身份验证数据
- MFC添加和使用自定义消息
- Cocos2dx学习笔记34 使用tolua++编译pkg,从而创建自定义类让Lua脚本使用
- MFC中不同对话框间使用SendMessage发送自定义消息的具体实现
- MFC学习笔记_ComboBox的基本使用
- Vc/MFC中自定义消息及其PostMessage触发使用