MFC線程創建以及利用線程顯示字符

1、首先利用VS2010建立MFC對話框應用程序命名爲MFC_Thread_Test,去掉默認的union字符集,也可以在工程建立完後修改工程屬性,改爲多字符集

2、添加對話框類成員變量

CWinThread* Thread1;//定義線程指針

CWnd* MainWnd;//定義對話框窗口指針

3、定義並實現一個類成員函數,用來封裝線程創建,這裏只封裝一個線程創建,可以創建多線程

定義:

void CreatThread();

實現:

void CMFC_Thread_TestDlg::CreatThread()

{

MainWnd=AfxGetApp()->m_pMainWnd;//獲取對話框窗口指針

Thread1=AfxBeginThread(Thread1_Process,MainWnd,0,0,CREATE_SUSPENDED,NULL);//創建線程並掛起

Thread1->ResumeThread();//喚醒線程

}

4、定義並實現線程處理函數

定義一個全局的線程處理函數:

UINT Thread1_Process(LPVOID  pParam);

實現該函數

UINT Thread1_Process(LPVOID pParam)

{

CMFC_Thread_TestDlg* pMainWnd=(CMFC_Thread_TestDlg*)pParam;//通過參數獲取對話框窗口指針

pMainWnd->EditShow();//通過對話框窗口指針調用對話框類裏面的成員函數

pMainWnd->GetDlgItem(IDC_EDIT2)->SetWindowText("NO EditShow!!!");//直接調用庫函數顯示字符串

return 0;

}

5、在對話框上加兩個編輯框,ID分別爲IDC_EDIT1、IDC_EDIT2。再加兩個按鈕ID爲IDC_BUTTON1和IDC_BUTTON2。

將按鈕一名字改爲創建線程,按鈕二改爲清空顯示,雙擊按鈕一,添加處理函數,在處理函數裏面加上:

CreatThread();

雙擊按鈕二,添加處理函數,在函數裏面加上:

GetDlgItem(IDC_EDIT1)->SetWindowText("");//清空編輯框1

GetDlgItem(IDC_EDIT2)->SetWindowText("");//清空編輯框2

6、再爲對話框類添加一個成員函數

定義:

void EditShow();

實現:

void CMFC_Thread_TestDlg::EditShow();

{

GetDlgItem(IDC_EDIT1)->SetWindowText("Thread has been created!!!");//編輯框1顯示

}


發佈了34 篇原創文章 · 獲贊 23 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章