Create a Dlg's Thread is specail when u want to update the dlg's show in time with the program's running.
So,we need create it.
here is step:
1:create a static function.
//like
UINT WINAPI ThreadDlg::MyOwnThread(LPVOID pParam){
//´Ó´«µÝ¹ýÀ´µÄʵÀýÖ¸Õ룬¿ÉÒÔ²Ù×÷²»Í¬µÄʵÀý£¬
//×¢ÒâÏ̺߳¯ÊýÊÇΨһµÄ¡£
ThreadDlg &p=*(ThreadDlg*)pParam;
int i=0;
for(;;){
CEdit* ed=(CEdit*)p.GetDlgItem(IDC_info);
CString temp;
temp.Format("%d",i);
ed->SetWindowText(temp);
i++;
//::Sleep(2000);
//AfxMessageBox(temp);
}
return 0;
}
2:use it with para that is the Dlg's handle.
void ThreadDlg::OnUseOwnThread()
{
unsigned int nDummy;
//×¢Ò⣺´«µÝ¸øÏ̱߳¾ÊµÀýµÄÖ¸Õë
hThreadO = (HANDLE) _beginthreadex(NULL,0,MyOwnThread,this,
CREATE_SUSPENDED,&nDummy);
if (!hThreadO) {
TRACE(_T("Draw: Couldn't start a ICON animation thread\n"));
return ;
}
else {
ResumeThread(hThreadO);
}
}
3:use it freely.
void ThreadDlg::OnEndOwnThread()
{
// _endthreadex(hThreadO);
TerminateThread(hThreadO,1);
CloseHandle(hThreadO);
}
4:be careful that the hHandleO can be declear in Dlg's Class header file.
转载于:https://www.cnblogs.com/abraham/archive/2004/04/18/6455.html