win32 DialogBox app:如何在启动时隐藏对话框?

时间:2010-10-27 15:23:34

标签: winapi dialog

我有一个win32应用程序,它使用DialogBox()来显示其主窗口。

我现在想要启动此应用程序,对话框不可见,稍后将其设置为可见 SetWindowPos(hDlg,HWND_TOPMOST,...

不幸的是

http://msdn.microsoft.com/en-us/library/ms645452(VS.85).aspx

  

该函数显示对话框(无论模板是否指定WS_VISIBLE样式)

......似乎没有办法使用DialogBox()来做到这一点。

我可以添加一个电话 SetWindowPos(hDlg,HWND_NOTOPMOST ......

在WM_INITDIALOG处理程序中的对话框过程中。

...但我担心在繁重的系统加载下,对话框会短暂出现然后消失,产生丑陋的闪烁效果。

有没有办法通过DialogBox()创建我的对话框而不显示它?

1 个答案:

答案 0 :(得分:0)

我在这项技术上取得了一些成功

void CMyDlg::OnWindowPosChanging(WINDOWPOS* lpWndPos)
{
    // hide dialog
    lpWndPos->flags &= ~SWP_SHOWWINDOW;
    CDialog::OnWindowPosChanging(lpWndPos);
}

来自here