一般隐藏MFC窗体就是调用
ShowWindow(SW_HIDE);
UpdateWindow();
但是有一些时候 我们要求程序一运行就隐藏显示。这样把以上代码加入到OnInitDialog()里面,会发现 根本不好使。
解决办法:
1. 在OnInitDialog() 中加入:
ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
//显示隐藏
WINDOWPLACEMENT wp;
wp.length=sizeof(WINDOWPLACEMENT);
wp.flags=WPF_RESTORETOMAXIMIZED;
wp.showCmd=SW_HIDE;
SetWindowPlacement(&wp);
隐藏是隐藏了 但是在任务管理器--应用程序中 还是能看到。
2.在DefWindowProc 中加入:
if(message == WM_NCPAINT) //窗体重画消息
{
ShowWindow(SW_HIDE);
}
隐藏是隐藏了,任务管理器-应用程序中也看不到。但是会有闪烁的一个过程!
办法3.
ShowWindow(SW_HIDE);
RunModalLoop();
这个方法就可以了,并且再次使用ShowWindow(SW_SHOW)还可以还原,前面两种一直处于隐藏状态,无法还原