MFC創建線程示例
阿新 • • 發佈:2019-02-07
示例 禁止 cati int 獲取 button 主界面 code close
MFC創建線程示例
AfxBeginThread()
創建現場的方法是AfxBeginThread()函數。
在【.CPP】文件定義一個全局變量,決定什麽時候退出這個線程。
BOOL g_bWillExit=FALSE;
拖一個BUTTON按鈕控件,【創建線程】(IDC_BUTTON_THREAD),綁定單擊事件函數。
void CmyfirstmfcDlg::OnBnClickedButtonThread() { g_bWillExit = FALSE; AfxBeginThread((AFX_THREADPROC)ThreadFunc, (LPVOID)this); // this是主對話框的指針 // 創建線程BUTTON按鈕控件 禁止點擊 CButton *pButton = (CButton *)GetDlgItem(IDC_BUTTON_THREAD); pButton->EnableWindow(FALSE); // TODO: Add your control notification handler code here }
回調函數
DWORD WINAPI ThreadFunc(PVOID param) { while(g_bWillExit == FALSE) { if(MessageBox(NULL,_T("退出線程嗎?"),_T("這是線程"),MB_YESNO)==IDYES) { // 創建線程BUTTON按鈕控件 開啟點擊 CmyfirstmfcDlg *pDlg = (CmyfirstmfcDlg*)param; //獲取主對話框指針 CButton *pButton = (CButton *)pDlg->GetDlgItem(IDC_BUTTON_THREAD); //主界面的按鈕 pButton->EnableWindow(TRUE); break; } } return 0; }
退出線程
//線程退出
OnClose()
{
g_bWillExit = TRUE;
}
MFC創建線程示例