UINT WaitDlgProc( LPVOID pParam )
{
m_Event.SetEvent();
CWaitDlg WaitDlg;
WaitDlg.DoModal();
return 0;
}void CPropPage1::OnOK()
{
::AfxBeginThread(WaitDlgProc,NULL,0,0,0,NULL);
::WaitForSingleObject(m_Event.m_hObject,INFINITE);当运行到WaitDlg.DoModal()的时候,没有进入CWaitDlg::InitDialog().程序运行时,没有弹出应该有的对画框。。关闭的时候, 会弹出Debug Assertion Failed!
{
m_Event.SetEvent();
CWaitDlg WaitDlg;
WaitDlg.DoModal();
return 0;
}void CPropPage1::OnOK()
{
::AfxBeginThread(WaitDlgProc,NULL,0,0,0,NULL);
::WaitForSingleObject(m_Event.m_hObject,INFINITE);当运行到WaitDlg.DoModal()的时候,没有进入CWaitDlg::InitDialog().程序运行时,没有弹出应该有的对画框。。关闭的时候, 会弹出Debug Assertion Failed!
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
GetSystemMenu(FALSE)->EnableMenuItem(SC_CLOSE,MF_BYCOMMAND|MF_GRAYED);
SetTimer(1,3*1000,NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}void CWaitDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CWaitDlg::OnOK();
CDialog::OnTimer(nIDEvent);
}
WaitDlg.DoModal();直接执行完了 这个CWaitDlg也就自动没了,你可以把它定义成全局变量,类成员变量,或者写成
CWaitDlg *WaitDlg=new CWaitDlg;
WaitDlg->DoModal();
现在可能出错的地方就是你那m_Event,贴点你关于m_Event这事件的代码上来看看楼上几位说什么WaitDlg是局部变量,根本这部分是没问题的