在MFC下编程,多线程实现时候。要求函数为全局函数,这样在访问窗体的时候会出现很多问题,当然也可以将线程的运行函数写成类的静态函数,但是这样一来在静态函数中只能访问静态函数和变量,带来了诸多的不便。下面看我的实现。
这里我用vc++6.0创建了一个名为Muti_Tread的对话框程序。
在Muti_ThreadDlg.h : header file 中添加
// Generated message map functions
//{{AFX_MSG(CMuti_ThreadDlg)
virtual BOOL OnInitDialog();
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);//添加的消息声明
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
在 Muti_ThreadDlg.cpp : implementation file中
首先定义
#define WM_MY_MESSAGE (WM_USER+100)//WM_USER 有一些控件也使用,因此这里要加上100
下一步 还是在Muti_ThreadDlg.cpp : implementation file中
BEGIN_MESSAGE_MAP(CMuti_ThreadDlg, CDialog)
//{{AFX_MSG_MAP(CMuti_ThreadDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)//添加.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
同时实现消息处理函数
LRESULT CMuti_ThreadDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
MessageBox("OnMyMessage!");
return 0;
}
OK 。。