我有一个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()创建我的对话框而不显示它?
答案 0 :(得分:0)
我在这项技术上取得了一些成功
void CMyDlg::OnWindowPosChanging(WINDOWPOS* lpWndPos)
{
// hide dialog
lpWndPos->flags &= ~SWP_SHOWWINDOW;
CDialog::OnWindowPosChanging(lpWndPos);
}
来自here