新建一个Therad名称的对话框文件,对资源视图上拖一个编辑框控件.程序运行后线程函数调用系统时间在编辑框上显示.
1、线程函数的声明:
在dlg头文件中定义工作者线程函数静态函数、线程要调用dlg类的成员函数My_Func();
CWinThread* pThread; //声明定义一个线程类指针
static UINT My_TheradFunc(LPVOID lparam);
void My_Func();
2、线程函数的创建(启动):
在dlg类的OnInitDialog函数中生成线程;
pThread = AfxBeginThread(My_TheradFunc,(LPVOID)this);//用AfxBeginThread获得线程指针
3、线程函数的定义:
将窗口指针赋给无类型指针,线程调用dlg类定义的成员函数
UINT CTheradDlg::My_TheradFunc(LPVOID lparam)//将窗口指针赋给无类型指针
{
CTheradDlg *dlg = (CTheradDlg*)lparam; //可以调用CTheradtDlg定义的类成员函数
CTime tm;
tm=CTime::GetCurrentTime();
CString start_time,finish_time;
start_time=tm.Format("Start_Test:%Y%m%d-%H:%M:%S"); //获取开始时间
while (1)
{
dlg->My_Func(); //线程要执行的函数(调用CTheradtDlg定义的类成员函数)
}
return TRUE;
}
4、线程要处理的函数:
void CTheradDlg::My_Func() //处理函数在这里写
{
CTime tm;
tm=CTime::GetCurrentTime();
CString start_time,finish_time;
start_time=tm.Format("Start_Test:%Y%m%d-%H:%M:%S"); //获取开始时间
SetDlgItemText(IDC_EDIT1,start_time);
Sleep(1000);
}