【線程的創建】
AfxBeginThread(類外的線程函數,NULL);
AfxBeginThread(類內的線程函數,(LPVOID)this);
【類外線程函數】
UINT 函數名(LPVOID pParam);//頭文件中聲明,放類外
UINT MyThreadA(LPVOID pParam) //cpp文件中具體實現
{
}
【類內線程函數】
static UINT 函數名(LPVOID pParam);//頭文件中聲明,放類內
UINT CMFCApplication5Dlg::MyThreadA(LPVOID pParam) //cpp文件中具體實現
{
}
【案例】IDC_OUTPUT_1——Static Text
UINT MyThreadA(LPVOID pParam) { for (int i = 0; i <=100; i++) { SetDlgItemInt(AfxGetApp()->m_pMainWnd->m_hWnd, IDC_OUTPUT_1,i,false);//窗口句柄,具體控件ID Sleep(100); } return 0; } void CMFCApplication5Dlg::OnBnClickedButton1() { // TODO: 在此添加控件通知處理程序代碼 AfxBeginThread(MyThreadA,NULL); }
UINT CMFCApplication5Dlg::MyThreadA(LPVOID pParam) { CMFCApplication5Dlg* dlg = (CMFCApplication5Dlg*)pParam; //pParam是this for (int i = 0; i <=100; i++) { dlg->SetDlgItemInt(IDC_OUTPUT_1, i, false); Sleep(100); } return 0; } void CMFCApplication5Dlg::OnBnClickedButton1() { // TODO: 在此添加控件通知處理程序代碼 AfxBeginThread(MyThreadA, (LPVOID)this);//傳入this指針 }