方法如下(测试版):
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);
}