在MFC中,开启线程函数推荐使用AfxBeginThread函数,返回的是CWinThread类,可以响应消息
函数原型
//省略写法,详情可到文章末尾访问MSDN查看
CWinThread* AFXAPI AfxBeginThread(线程函数,参数指针);
使用方法
//若线程函数需要被子类调用,需在父类头文件中添加
extern UINT ThreadFun(LPVOID pParam);
//cpp中定义,在类外面
UINT ThreadFun(LPVOID pParam){
//代码
return 0;
}
//执行线程函数
AfxBeginThread(ThreadFun,NULL);
要点说明
- 线程函数在接受的参数需要进行类型转换
- 需传入多个参数时可将多个参数定义为一个结构体,然后再传递给线程函数
- 可将当前窗口指针作为参数传递到线程函数中,线程函数即可调用窗口的成员函数
附MSDN详解直达:AfxBeginThread | Microsoft Learn