CTipsDlg是一个对话框资源对应的类,创建一个非模态对话框,并将该对话框的窗口句柄传入新起的线程中。
CTipsDlg *dlg = new CTipsDlg();
dlg->Create(IDD_TIPS,NULL);
CWnd *pWndStatus = dlg->GetDlgItem(IDC_STATIC_TIPS);
//设置新的文字
pWndStatus->SetWindowText(strTips);
dlg->ShowWindow(SW_SHOW);
dlg->UpdateWindow();
CWinThread *m_pThread = AfxBeginThread(CTipsDlg::ThreadFunc,(LPVOID)dlg->GetSafeHwnd());
在线程函数中获取传入的句柄参数方法如下:直接强转即可。
UINT CTipsDlg::ThreadFunc(LPVOID pParm)
{
......
::SendMessage(((HWND)pParm),WM_CLOSE,0,0);
.......
}