我正在尝试创建一个简单的无模式对话框,我正在使用我的CWinApp派生的InitInstance()函数创建它。
BOOL CMyApp::InitInstance()
{
...
m_pMyDialog = new CMyDialog();
m_pMyDialog->Create(CMyDialog::IDD);
...
retrun TRUE;
}
我在资源编辑器中创建了对话框模板,并且未设置WS_VISIBLE位。我的目的是避免在显式调用ShowWindow(SW_SHOW)之前显示对话框,但由于某种原因,对Create的调用会显示对话框。
我试图将OnInitDialog()的返回值更改为FALSE,但这不起作用。
我甚至试图调用ModifyStyle()以防其他东西设置WS_VISIBLE位。
int CMyDialog::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
ModifyStyle(WS_VISIBLE, 0);
return 0;
}
这也不起作用。在所有情况下,在我调用Create之后,显示的对话框不是我读过的,应该可以工作。
答案 0 :(得分:2)
问题在于AnimateWindow()导致对话框过早显示。