• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Woosa

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

MFC学习笔记——自定义消息的使用 .

简单概要

windows的消息机制在前面的几章已经介绍过了,今天来学习一下自定义消息。

预备知识

看完前几章的文章。

具体步骤

新建一个工程,名称为“MyMessage”,使用 Unicode 编码。具体界面可以如下:

在界面设计处右击选择类向导,添加自定义信息。

添加完成之后就会在“现有处理程序”出现刚才的消息,点击“编辑代码”可以进入编辑代码状态。

这是自动生成的代码

我们会发现,我们这编译程序是编译失败的,因为我们虽然添加了自定义消息,但是还没有定义这个消息的ID。Visual Studio 不会给我们自动添加消息ID。
如果你的Visual Studio中也装有 visual assist 的话,你就会发现在如下图中有一个变量定义错误,这就是我们的消息。

下面让我们自定义一下这个消息。打开工程对话框的dlg.h,就是对话框的头文件。然后在最上面添加如下代码:

[cpp] view plaincopyprint?
  1. // 定义一下我的消息代码 至于为什么会用WM_USER+1,请看百度百科   
  2. // WM_USER_百度百科 http://baike.baidu.com/view/4146980.htm   
  3. #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?
  1. void CMyMessageDlg::OnBnClickedBtnSendmessageToMe()  
  2. {  
  3.     // SendMessage的具体详解请见百度百科   
  4.     // SendMessage_百度百科   http://baike.baidu.com/view/1080187.htm   
  5.     SendMessage(WM_MY_MESSAGE);  
  6. }  
void CMyMessageDlg::OnBnClickedBtnSendmessageToMe()
{
	// SendMessage的具体详解请见百度百科
	// SendMessage_百度百科   http://baike.baidu.com/view/1080187.htm
	SendMessage(WM_MY_MESSAGE);
}
另外在消息接受的代码处修改为:
[cpp] view plaincopyprint?
  1. afx_msg LRESULT CMyMessageDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)  
  2. {  
  3.     MessageBox(_T("接受的我的自定义消息!"),_T("提示"),MB_ICONINFORMATION);  
  4.     return 0;  
  5. }  
afx_msg LRESULT CMyMessageDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
	MessageBox(_T("接受的我的自定义消息!"),_T("提示"),MB_ICONINFORMATION);
	return 0;
}
这样我们点击给自己发送消息就可以看到程序自己给自己发的消息了。

总结拓展

SendMessage 不仅可以给自己发送消息,而且还可以为其他程序发送消息。可以尝试一下给其他程序发送消息。

Demo下载


点击下载:点击下载

posted on 2013-04-28 17:24  Woosa  阅读(185)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3