建立一个基于对话框的MFC工程,窗体上房一个按钮,创建一个CButton对象,在头文件中加入CEvent事件的头文件#include <afxmt.h> 和线程头文件 #include <process.h>,
在对话框工程头 .h 文件中声明一个线程处理函数(类外声明)。
UINT WINAPI ThreandOne(LPVOID pParam);
CEvent m_MyEvent(false,true); //创建一个CEvent手工事件,第一个参数为FALSE,所有要访问资源的线程必须等待,第二个参数为TRUE 表示为手工事件
HANDLE One;//一个句柄
int i = 0;
在Button处理函数中 添加如下代码:
CString m_str= NULL;
One = (HANDLE)_beginthreadex(0,0,ThreandOne,0,0,0);
while (1)
{
m_str.Format(_T("%d"),i);
m_MyButton.SetWindowText(m_str);
}
线程处理函数代码:
UINT WINAPI ThreandOne(LPVOID pParam){
while (1)
{
WaitForSingleObject(One,1000);
i++;
}
return 1;
}
运行程序,按钮上的数字会每隔一秒 加 1