您的位置:首页 > 其它

如何在mfc中通过线程向主窗口发送数据或者是访问控件

2014-09-04 17:39 423 查看
<pre name="code" class="cpp">首先在创建子线程的时候将窗口的句柄传入到子线程
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MyThreadProc, GetSafeHwnd(), 0, 0);

然后在你的子线程中发送消息
UINT MyThreadProc( LPVOID pParam )
{

HWND hWnd= (HWND)pParam;

...
SendMessage(hWnd, UM_MSG, ...,...); // 发送自定义的消息到主界面线程,通知它去更新界面控件信息  用宏定义你的消息<span style="font-family: Arial, Helvetica, sans-serif;">M_MSG</span>
return 0;
}

然后到你的类中定义

afx_msg LRESULT OnHandleMsg(WPARAM wParam, LPARAM lParam);// 自定义消息UM_MSG的消息处理函数

然后在你要添加的cpp文件中找到
BEGIN_MESSAGE_MAP(CXXDlg, CDialog)
...
END_MESSAGE_MAP()

添加
ON_MESSAGE(UM_MSG, &CXXDlg::OnHandleMsg)
到他们之间

最后定义你的处理函数
<pre name="code" class="cpp">LRESULT CXXDlg::OnHandleMsg(WPARAM wParam, lParam)
{
...
SetDlgItemText(...);
return 0;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐