MFC 工作者线程传送消息
2010-10-30 16:37
246 查看
方法如下(测试版):
1,生成一个 dialog based 的 exe 工程。
2,添加一个对话框资源 IDD_WORKDLG,并 ctrl+w 出来一个关联的类,在类中添加一个自定义的消息响应函数。
resource.h 中:#define msg_test wm_user+15
接着添加 afx_msg 和 ON_MESSAGE 那一套消息映射。
void OnTest(WPARAM wParam,LPARAM lParam)
{
afxmessageBox("消息收到");
}
3,在主对话框中 OnInitDlg() 中 AfxBeginThread( ThreadProc,NULL);
CWorkDlg *pDlg;
UINT ThreadProc(LPVOID lParam)
{
pDlg=new CWorkDlg;
pDlg->Create(IDD_WORKDLG,NULL);
MSG msg
while(getmessage(&msg,NULL,0,0))
{
translatemessage(&msg);
dispatchmessage(&msg);
}
return 0;
}
4,测试,比如在主对话框中添加一个按钮事件
void OnButton()
{
::postmessage(pDlg->GetSageWnd(),wm_test,0,0);
}
1,生成一个 dialog based 的 exe 工程。
2,添加一个对话框资源 IDD_WORKDLG,并 ctrl+w 出来一个关联的类,在类中添加一个自定义的消息响应函数。
resource.h 中:#define msg_test wm_user+15
接着添加 afx_msg 和 ON_MESSAGE 那一套消息映射。
void OnTest(WPARAM wParam,LPARAM lParam)
{
afxmessageBox("消息收到");
}
3,在主对话框中 OnInitDlg() 中 AfxBeginThread( ThreadProc,NULL);
CWorkDlg *pDlg;
UINT ThreadProc(LPVOID lParam)
{
pDlg=new CWorkDlg;
pDlg->Create(IDD_WORKDLG,NULL);
MSG msg
while(getmessage(&msg,NULL,0,0))
{
translatemessage(&msg);
dispatchmessage(&msg);
}
return 0;
}
4,测试,比如在主对话框中添加一个按钮事件
void OnButton()
{
::postmessage(pDlg->GetSageWnd(),wm_test,0,0);
}
相关文章推荐
- 在MFC中从一个线程工作函数中向窗口发送消息以及窗口到窗口消息传送方法
- MFC中在工作线程下画图(自定义消息的发送)
- MFC命令消息(WM_COMMAND)的传送路径
- vc/mfc 进程消息队列,线程消息队列,和系统消息队列,该如何处理
- 在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用)
- MFC 文档 视图 框架窗口间的关系 和消息传送规律
- 在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用)
- MFC 线程中发送最小化消息失败
- MFC 界面线程和工作者线程
- MFC消息三部曲(2)——线程中控制窗口内容
- 091020(星期二)MFC线程消息循环3,GetMessage函数msdn描述
- UI线程和工作者线程的消息队列
- MFC如何自定义消息与在线程中向主窗体控件发送数据
- linux qt+windows mfc利用socket传送消息
- VS2010 MFC 线程、信号量、抛消息
- 不知道在MFC中如何从线程工作函数中向窗口发送消息?用好一个指针就够了
- MFC如何在主线程中向view类发消息或是其他类向主框架类发消息
- No MFC 编程05 - 进程 > 线程 > 消息队列,三者的包含关系
- PostThreadMessage window线程间传送消息
- MFC 界面线程和工作者线程