在MFC中隐藏运行界面确实花花点功力。
针对对话框程序,一种不是很好地实现方法是在OnPaint函数中添加如下代码:
CWnd::ShowWindow(SW_HIDE);
添加后执行会发现屏幕会闪烁一下之后只在后台运行。
有一种好方法,就是在OnInitDialog(...)中加入以下的代码:
SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_HIDEWINDOW);
//设置窗口为非顶级窗口,并且窗口的位置为(0,0)窗口的宽和高为(0,0),指定为隐藏窗口
ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
//强行清除可见的顶级窗口,并设置窗口格式为工具窗口
这两句话纯属为偷懒行为,就是将窗口的高度和宽度划为0,看不见了,然后设置为隐藏窗口。
这样,运行对话框程序之后,就不会出现对话框界面了。