打开APP
userphoto
未登录

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

开通VIP
Vc/MFC中自定义消息及其PostMessage触发使用
转载请注明文章:VC++/MFC中自定义消息及其PostMessage消息函数使用 出处:多客博图
如何在VC++中加入自定义消息,我的做法:
这里我以一个对话框为例子,环境:VS 2008,新建一个工程,选择对话框:以编译器给出的对话框为蓝本,自己新建一个按钮如图:
把名字改成如图的,其他比如ID什么的都不改了,默认。
1 首先在ownermessageDlg.h中定义消息:例如
define WM_MYMESSAGE (WM_USER+100)2 在ownermessageDlg.h的文件中 class 的public,加入消息响应函数,如:
afx_msg LRESULT OnMyMessage(WPARAM w,LPARAM l);该函数有规定的格式:
afx_msg LRESULT Function_Name(WPARAM w,LPARAM l);3 在ownermessageDlg.cpp中加入消息响应宏
在响应该消息的类中,在消息响应块中,
BEGIN_MESSAGE_MAP(CownermessageDlg, CDialog)  ON_WM_SYSCOMMAND()  ON_WM_PAINT()  ON_WM_QUERYDRAGICON()  //}}AFX_MSG_MAPEND_MESSAGE_MAP()加入以下语句:
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)成为如下样式:
BEGIN_MESSAGE_MAP(CownermessageDlg, CDialog)  ON_WM_SYSCOMMAND()  ON_WM_PAINT()  ON_WM_QUERYDRAGICON()  ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)  //}}AFX_MSG_MAPEND_MESSAGE_MAP()4 在.CPP文件中,编辑消息响应函数,如下:
LRESULT CownermessageDlg::OnMyMessage(WPARAM wParam, LPARAM lParam) {  MessageBox(_T("My Message!"));  return 1;} 5.在对话框中为新增的按钮添加单击响应,ownermessageDlg.cpp中的MESSAGE_MAP自动变成:
BEGIN_MESSAGE_MAP(CownermessageDlg, CDialog)  ON_WM_SYSCOMMAND()  ON_WM_PAINT()  ON_WM_QUERYDRAGICON()  ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)  //}}AFX_MSG_MAP  ON_BN_CLICKED(IDC_BUTTON1, &CownermessageDlg::OnBnClickedButton1)END_MESSAGE_MAP() void CownermessageDlg::OnBnClickedButton1(){  // TODO: Add your control notification handler code here  //::PostMessage(  PostMessage(WM_MYMESSAGE, IDC_BUTTON1);}PostMessage(……)这个就是响应WM_MYMESSAGE消息的,其实这样写也是可以的:
PostMessage(WM_MYMESSAGE);我们来看看这个消息的函数原型:
在CWnd::PostMessage中定义
BOOL PostMessage (  UINT message,  WPARAM wParam = 0,  LPARAM lParam = 0);Parameters:messageSpecifies the message to be posted.wParamSpecifies additional message information. The content of this parameter depends on the message being posted.lParamSpecifies additional message information. The content of this parameter depends on the message being posted.Return ValueNonzero if the message is posted; otherwise 0.所以一般的当点击时,消息触发就会发送一个WM_MYMESSAGE消息,故而调用CownermessageDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)这个函数。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vc6.0添加自定义用户消息的基本过程
MFC线程通过PostMessage发送消息(自定义消息)
VC++6.0中如何发送自定义消息
VSMFC中添加用户自定义消息及消息响应函数
Windows自定义消息
MFC 自定义消息 和 子对话框 父对话框 发送消息
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服