我好郁闷!
在我的应用程序中,在有些时候有较长时间的操作,因此我在我的程序中使用了一个无模式对话框给用户一些提示。程序如下:
(其中,dlgWaiting是一个Dialog类对象。IDC_MESSAGE是该对话框模板中的一个statictext。)
void CMyApp::Waiting(const CString& strWaiting)
{
dlgWaiting.Create(IDD_WAITING);
CWnd* pCtrl = dlgWaiting.GetDlgItem(IDC_MESSAGE);
ASSERT(pCtrl);
pCtrl->SetWindowText(strWaiting);
dlgWaiting.CenterWindow(NULL);
// dlgWaiting.SetWindowPos(&wndTopMost, 0, 0, 0, 0,
// SWP_NOMOVE|SWP_NOSIZE);
::SetWindowPos(dlgWaiting.m_hWnd,HWND_TOPMOST,
0, 0, 0, 0,
SWP_NOMOVE|SWP_NOSIZE);
dlgWaiting.ShowWindow(SW_NORMAL);
}
void CMyApp::EndWaiting()
{
dlgWaiting.DestroyWindow( );
}
但是,使用的时候出现了问题。比如,我在文档类中使用时。
((CMyApp*)AfxGetApp( ))->Waiting("Waiting......");
AfxMessageBox("Ok?");
((CMyApp*)AfxGetApp( ))->EndWaitong( );
如果AfxMessageBox("Ok?")在的话,一切正常;如果去掉的话,对话框倒是出现了,但是信息却不见了。
这是为什么呢?