多线程编程之三——线程间通讯
2007-03-17 22:00:11 来源:WEB开发网在MultiThread7Dlg.h中定义如下变量:protected:
代表加数的大小。
int nAddend;
分别双击三个单选按钮,添加消息响应函数:void CMultiThread7Dlg::OnRadio1()
并在OnInitDialog函数中完成相应的初始化工作:
{
nAddend=10;
}
void CMultiThread7Dlg::OnRadio2()
{
nAddend=50;
}
void CMultiThread7Dlg::OnRadio3()
{
nAddend=100;
}BOOL CMultiThread7Dlg::OnInitDialog()
在MultiThread7Dlg.h中添加:
{
……
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
nAddend=10;
……#include "CalculateThread.h"
在MultiThread7Dlg.cpp中添加:
#define WM_DISPLAY WM_USER+2
class CMultiThread7Dlg : public CDialog
{
// Construction
public:
CMultiThread7Dlg(CWnd* pParent = NULL); // standard constructor
CCalculateThread* m_pCalculateThread;
……
protected:
int nAddend;
LRESULT OnDisplay(WPARAM wParam,LPARAM lParam);
……BEGIN_MESSAGE_MAP(CMultiThread7Dlg, CDialog)
以上代码使得主线程类CMultiThread7Dlg可以处理WM_DISPLAY消息,即在IDC_STATUS标签框中显示计算结果。
……
ON_MESSAGE(WM_DISPLAY,OnDisplay)
END_MESSAGE_MAP()
LRESULT CMultiThread7Dlg::OnDisplay(WPARAM wParam,LPARAM lParam)
{
int nTemp=(int)wParam;
SetDlgItemInt(IDC_STATUS,nTemp,FALSE);
return 0;
}
更多精彩
赞助商链接