我想创建一个简单的无模式对话框,我从CWinApp派生的InitInstance()函数创建。MFC:创建无模式对话框不显示
BOOL CMyApp::InitInstance()
{
...
m_pMyDialog = new CMyDialog();
m_pMyDialog->Create(CMyDialog::IDD);
...
retrun TRUE;
}
我在资源编辑器中创建了对话框模板,并且未设置WS_VISIBLE位。我的目的是避免显示对话框,直到我明确调用ShowWindow(SW_SHOW),但由于某种原因调用Create来显示对话框。
我试图将OnInitDialog()的返回值更改为FALSE,但这不起作用。
我甚至在设置WS_VISIBLE位的情况下尝试调用ModifyStyle()。
int CMyDialog::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
ModifyStyle(WS_VISIBLE, 0);
return 0;
}
这也行不通。在所有情况下,在我调用Create之后,显示的对话框并不是我读过的,应该可以工作。
我知道我可以在调用Create(...)之后调用ShowWindow(SW_HIDE),但这会导致对话框在屏幕上瞬间闪烁,这并不理想。 – sna14 2011-04-27 20:12:18