网站与网页的区别与联系,html电子商务网站模版,云南做网站公司,互联网广告业务在MFC中#xff0c;我们一边在使用多线程时#xff0c;经常会遇到在需要调用到新建的控件#xff0c;此时建议不要在新建的线程中直接调用主对话框的控件#xff0c;我们可以通过自定义消息#xff0c;在新建线程中发送并触发主线程进行相关的界面控件操作。
以Dialog对话…在MFC中我们一边在使用多线程时经常会遇到在需要调用到新建的控件此时建议不要在新建的线程中直接调用主对话框的控件我们可以通过自定义消息在新建线程中发送并触发主线程进行相关的界面控件操作。
以Dialog对话框程序为例添加自定义消息的操作方法可以如下所示
1. 在头文件stdafx.h中添加一个自定义消息宏
#define WM_USER_MSG_HDL (WM_USER 1) 2. 在增加新消息的窗口或对话框类头文件中增加一个回调函数声明注意要声明为public
afx_msg LRESULT OnUserMsgHdl(WPARAM wParam, LPARAM lParam); 3. 在窗口或对话框的cpp文件的BEGIN_MESSAGE_MAPEND_MESSAGE_MAP中增加一行
ON_MESSAGE(WM_USER_MSG_HDL, OnUserMsgHdl) 4. 在窗口或对话框的cpp文件中添加回调函数的实现如 //wParam和lParam为sendMessage或PostMessage传递过来的参数 LRESULT ThreadDialog::OnUserMsgHdl(WPARAM wParam, LPARAM lParam) { TRACE(WM_USER_MSG_HDL message /n); return 0; } 5. 自定义消息的触发
::PostMessage(GetSafeHwnd(), WM_USER_MSG_HDL, 0, 0); 其中GetSafeHwnd()得到了一个当前窗口的句柄此消息将发送给当前窗口如果想发送消息给其他窗口只需改变这个句柄前提示目的的窗口也实现了此消息的处理函数。