Title is No Title

not very good here!

导航

Create a Dlg's Thread and use it,this can use dlg handle.

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.

posted on 2004-04-18 18:20  abraham  阅读(724)  评论(0编辑  收藏  举报