WEB开发网
开发学院软件开发VC 多线程编程之三——线程间通讯 阅读

多线程编程之三——线程间通讯

 2007-03-17 22:00:11 来源:WEB开发网   
核心提示: 在MultiThread7Dlg.h中定义如下变量:protected:int nAddend;代表加数的大小,分别双击三个单选按钮,多线程编程之三——线程间通讯(2),添加消息响应函数:void CMultiThread7Dlg::OnRadio1(){nAddend=10;}void

在MultiThread7Dlg.h中定义如下变量:protected:
  int nAddend;
代表加数的大小。

分别双击三个单选按钮,添加消息响应函数:void CMultiThread7Dlg::OnRadio1()
{
  nAddend=10;
}
void CMultiThread7Dlg::OnRadio2()
{
  nAddend=50;
  
}
void CMultiThread7Dlg::OnRadio3()
{
  nAddend=100;
  
}
并在OnInitDialog函数中完成相应的初始化工作:BOOL CMultiThread7Dlg::OnInitDialog()
{
……
  ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);
  nAddend=10;
……
在MultiThread7Dlg.h中添加:#include "CalculateThread.h"
#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);
……
在MultiThread7Dlg.cpp中添加:BEGIN_MESSAGE_MAP(CMultiThread7Dlg, CDialog)
……
  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;
}
以上代码使得主线程类CMultiThread7Dlg可以处理WM_DISPLAY消息,即在IDC_STATUS标签框中显示计算结果。

Tags:线程 编程 线程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接