MFC一一添加WM_USER自定义消息
2017-09-13 21:15
357 查看
有些时候,我们希望自定义一些消息响应函数来控制何时进行消息触发,或针对两个不同类或线程之间进行消息互动,这个时候自定义消息响应函数就起到很大作用了。那么如何添加自定义消息呢?具体分为以下几步:
如下是一个SDI应用程序关于用户测试界面刷新的代码片段,可以参考其实现过程:
(1).定义WM_USER宏
(2).添加消息映射宏
(3)在头文件类的定义中声明消息响应函数
(4)定义并实现消息响应函数
如下是一个SDI应用程序关于用户测试界面刷新的代码片段,可以参考其实现过程:
(1).定义WM_USER宏
#define WM_USER_REFURBISH_TEST_RESULT (WM_USER + 1001)
(2).添加消息映射宏
BEGIN_MESSAGE_MAP(CFormView_Main, CFormView) ON_MESSAGE(WM_USER_REFURBISH_TEST_RESULT, &CFormView_Main::OnUserRefurbishTestResult) ON_WM_CREATE() ON_WM_SIZE() END_MESSAGE_MAP()
(3)在头文件类的定义中声明消息响应函数
afx_msg LRESULT OnUserRefurbishTestResult(WPARAM wParam, LPARAM lParam);
(4)定义并实现消息响应函数
afx_msg LRESULT CFormView_Main::OnUserRefurbishTestResult(WPARAM wParam, LPARAM lParam) { CString*p_str = (CString *)lParam; switch (wParam) { case _E_STATUS_PASS: m_CtrlStaticResult.SetBkColor(gsColor[COLOR_LIME]); m_CtrlStaticResult.SetWindowText(_T("PASS")); break; case _E_STATUS_FAIL: m_CtrlStaticResult.SetBkColor(gsColor[COLOR_RED]); m_CtrlStaticResult.SetWindowText(_T("FAIL")); break; case _E_STATUS_DOING: m_CtrlStaticResult.SetBkColor(gsColor[COLOR_YELLOW]); m_CtrlStaticResult.SetWindowText(*p_str); break; default: m_CtrlStaticResult.SetBkColor(gsColor[COLOR_PINK]); m_CtrlStaticResult.SetWindowText(_T("Ready")); break; } return 0; }我们可以看到,消息响应中的函数包含了wParam和lParam参数,在消息响应发送的时候,可以根据不同需求来进行定义,如下是消息响应发送的实现示例:
/* LRESULT SendMessage(HWND hWnd,UINT wMsg,WPARAM wParam,LPARAM IParam); 参数: hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。 wMsg用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量. wParam通常是一个与消息有关的常量值,也可能是窗口或控件的句柄 lParam通常是一个指向内存中数据的指针。由于WParm、lParam和Pointer都是32位的,因此,它们之间可以相互转换 返回值:返回值指定消息处理的结果,依赖于所发送的消息。 */
SendMessage(WM_USER_REFURBISH_TEST_RESULT,_E_STATUS_READY,NULL);
SendMessage(WM_USER_REFURBISH_TEST_RESULT,_E_STATUS_DOING,(LPARAM)&strInfo);
相关文章推荐
- MFC添加用户自定义消息
- MFC 如何添加自定义消息
- MFC中如何添加WM_ERASEBKGND、WM_LBUTTONDOWN等消息?
- MFC中添加自定义消息
- MFC对话框应用程序添加自定义消息
- 在MFC中添加用户自定义消息
- MFC对话框应用程序添加自定义消息
- 在MFC中添加用户自定义消息
- 在MFC中添加用户自定义消息
- MFC中添加用户自定义消息
- MFC 如何添加自定义消息
- MFC中添加自定义消息响应函数
- 在MFC中添加用户自定义消息
- MFC中添加用户自定义消息
- 【转】MFC 如何添加自定义消息及其响应函数
- 在MFC中添加用户自定义消息
- 在MFC中添加用户自定义消息【转载】
- 【VS2010学习笔记】【函数学习】一(MFC+OpenCV2.4.7读取摄像头之WM_TIMER消息处理函数的添加问题)
- WM_USER以及自定义消息WM_XXXX的定义 声明 实现
- 在MFC中添加用户自定义消息