【发布时间】:2011-04-27 20:08:38
【问题描述】:
我正在尝试创建一个简单的无模式对话框,该对话框是从我的 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 之后,都会显示对话框,这不是我阅读的方式。
【问题讨论】:
-
我知道我可以在调用 Create(...) 后调用 ShowWindow(SW_HIDE) 但这会导致对话框在屏幕上瞬间闪烁,这并不理想。
标签: c++ visual-studio-2010 mfc