在MFC裡直接用AfxBeginThread就可以了啊。
使用CWinThread*聲明一個線程,然後定義一個線程函數,在要開啟線程的地方使用AfxBeginThread這個線程函數就可以了~
例如:
CWinThread* pThreadTest;</p><p>UINT _TestThread(LPVOID lparam)<br />{</p><p> HWND hDlg=FindWindow(NULL,TEXT("DxxTest")); //擷取另一視窗的HWND<br /> CString str;<br /> // HWND hDlgbtn=FindWindow(NULL,TEXT("停止服務"));<br /> ::SendMessage(hDlg,WM_COMMAND,IDC_BUTTON2,0); //向hDlg視窗內的IDC_BUTTON2按鈕發送訊息<br /> for(int i=1;i<1000;i++)<br /> {<br /> str.Format(TEXT("%d服務已啟動!"),i);</p><p> SetDlgItemText(hDlg,IDC_STATIC,str);<br /> Sleep(1000);<br /> }<br />return 0;<br />}</p><p>
//在適當地方開啟線程
pThreadTest = ::AfxBeginThread(_TestThread,this);
例如:
void CDxxTestDlg::OnBnClickedButton1()<br />{<br />// TODO: 在此添加控制項通知處理常式代碼<br />CWinThread* pThreadTest;<br />GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);<br />//在適當地方開啟線程<br />pThreadTest = ::AfxBeginThread(_TestThread,this);<br />}