用MFC做的Dialog based 程序只要在OnInitDialog()函數里面寫如下代碼就能實現窗口隱藏:
SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_HIDEWINDOW);
ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
但是在任務管理器中還能看到!
將上述代碼寫入一個按紐的CLICK事件中即可實現程序的后臺運行,且任務管理器中不可見!
下面的方法可以使窗口徹底的不可見:
1. 如何有效地使初始窗口不顯示
當我們想讓窗口初始時不顯示時,通常會用ShowWindow(SW_HIDE) ,但實際上還是在啟動是可以看到窗口一閃而過的痕跡。所以,可以使用下面的方法來實現它:
(1.1)先在構造函數中設置布樂變量 visible值為false.
visible = false;
(1.2)重載 WM_WINDOWPOSCHANGING,并添加下面代碼:void CTest_deleteDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
if(!visible)
lpwndpos->flags &= ~SWP_SHOWWINDOW;
CDialog::OnWindowPosChanging(lpwndpos);
}
(1.3)然后設布爾visible變量值為true,并在要顯示窗口時,再用ShowWindow(SW_SHOW)既可。visible = true;
ShowWindow(SW_SHOW);