MFC創建線程示例


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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM