MFC:创建无模式对话框而不显示

时间:2011-04-27 20:08:39

标签: c++ visual-studio-2010 mfc

我正在尝试创建一个简单的无模式对话框,我正在使用我的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之后,显示的对话框不是我读过的,应该可以工作。

1 个答案:

答案 0 :(得分:2)

问题在于AnimateWindow()导致对话框过早显示。