MFC的自定义消息的定义与使用】的更多相关文章

自定义消息的响应和资源消息的响应有很多类似之处:资源消息的响应是以资源的ID号作为标识的:自定义的消息要自己声明消息ID. 一.           定义: 第一步要声明消息: #define WM_MYMSG  WM_USER+200 第二步要在类声明中声明消息映射: DECLARE_MESSAGE_MAP() 第三步要在类声明中定义消息处理函数: afx_msg LRESULT MyMsgHandler(WPARAM,LPARAM); 在.cpp中做的工作: 第四步要实现消息映射: BEGI…
PostMessage:把消息投放到线程的消息队列,不能消息被处理就立即返回SendMessage:消息被处理完后才返回 几种发送消息的写法:   ::PostMessage(GetSafeHwnd(), WM_USER_THREADEND, 0, 0); //GetSafeHwnd()表示得到当前窗口句柄,所以这条语句是发送给当前窗口   GetParent()->PostMessage(WM_USER_THREADEND, 0, 0);//发送给父窗口    this->PostMessa…
之前做过佳能相机和位移平台的额二次开发,当时遇到一个棘手的问题,就是位移平台如何知道相机已经拍完照了,或者相机如何知道位移平台已经运行到指定位置,当时为了方便采用了定时器来定时检测位移平台的位置,结果在后续的工作中引起了各种意想不到的错误.其实用户自定义消息之前了解过,由于之前编程一直没用到过,所以没去深入研究,主要也是自己偷懒怕麻烦.偷懒这个坏习惯必须要改,就像这次的相机开发一样,遇到问题没有去解决而采取回避方式,最终给自己带来了更大的麻烦.其实用户自定义消息并不是一件特别麻烦的事情. 在MF…
由于MFC中无法通过类向导来自定义消息,所以需要手动添加,主要过程如下: 本文基于vs2008下通过线程实现数据实时更新的对话框运用程序 1. 定义消息(Resource.h文件中): 由于很多新控件也会用到WM_USER消息,所以定义WM_USER+100或更高,避免冲突 #define WM_UPDATEDATA (WM_USER + 100) 2015-3-18 更新 1. 定义消息( stdafx.h文件中): 由于很多新控件也会用到WM_USER消息,所以定义WM_USER+100或更…
转:http://blog.csdn.net/penpenandtongtong/article/details/18598907 像MFC的窗口发送消息,可以进行自定义的动作行为,因此很多时候非常有用. 1. 在MSGDlg.h或者其他头文件中增加自定义自定义消息:#define WM_COUNT_MSG WM_USER+100 2. 在MSGDlg.h头文件中添加消息处理函数的声明  afx_msg LRESULT OnCountMsg(WPARAM,LPARAM); 3. 在CMSGDlg…
用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行.实际上有多种方法可以实现,这里只介绍两种方法. 一.在应用程序类中定义 用MFC生成的工程中都有一个名为CxxxApp的类,它派生于CWinApp类.这个类主要进行程序的初始化,生成文档.视图对象等工作.我们可以把需要全局访问的变量和函数定义为这个类的成员变量和成员函数,就可以实现全局访问了. 从严格意义上讲,这种变量和函数并不是全局的,…
想在对话框显示出来后立即执行一段代码. 方法之一是自定义消息,即添加一个自定义的消息在消息队列中等待对话框初始化之后从消息队列中读取消息执行代码. 在OnInitDialog返回之前post一个自定义的消息,在消息的相应函数里执行代码 利用类向导添加自定义消息WM_MY_PRIVATE,则生成如下消息响应函数,可以在自定义的消息响应函数里添加自己的代码: LRESULT MyAppDlg::OnPrivateMessage(WPARAM,LPARAM) { return0; } 当然,在消息映射…
在头文件stdafx.h中增加一个自定义消息宏 #define WM_USER_THREADEND WM_USER + 1 在于增加新消息的窗口或对话框类的头文件中增加一个回调函数声明 afx_msg LRESULT OnUserThreadend(WPARAM wParam, LPARAM lParam); 注意:这个函数对返回值和传递参数是有要求的,不可以随意修改. 在窗口或对话框的cpp文件的BEGIN_MESSAGE_MAP,END_MESSAGE_MAP 中增加一行 ON_MESSAG…
今天写界面的时候,明明直接在rc和reourse.h里面加了控件下面是rc和reourse.h照片 编辑的时候一直报错,找了很久发现是新定义的控件有两处定义,定义到其他工程里了所以才会这样,把其他工程里的删掉就好了!我还很菜,这只是一种原因,与君共勉.…
VC 2010-05-01 18:01:34 阅读287 评论0 字号:大中小 订阅 1.注册快捷键 在初始化函数,如OnInitDialog() 注册快捷键,代码如下: #define HotKeyID1 200 BOOL CDlgCloseProSetup::OnInitDialog() { CDialog::OnInitDialog(); ::RegisterHotKey(m_hWnd, HotKeyID1, NULL, VK_HOME); return TRUE; } RegisterH…