您的位置:首页 > 其它

MFC 工作者线程传送消息

2010-10-30 16:37 183 查看
方法如下(测试版):

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);

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