用MFC做的Dialog based 程序只要在OnInitDialog()函數(shù)里面寫(xiě)如下代碼就能實(shí)現(xiàn)窗口隱藏:
SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_HIDEWINDOW);
ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
但是在任務(wù)管理器中還能看到!
將上述代碼寫(xiě)入一個(gè)按紐的CLICK事件中即可實(shí)現(xiàn)程序的后臺(tái)運(yùn)行,且任務(wù)管理器中不可見(jiàn)!
下面的方法可以使窗口徹底的不可見(jiàn):
1. 如何有效地使初始窗口不顯示
當(dāng)我們想讓窗口初始時(shí)不顯示時(shí),通常會(huì)用ShowWindow(SW_HIDE) ,但實(shí)際上還是在啟動(dòng)是可以看到窗口一閃而過(guò)的痕跡。所以,可以使用下面的方法來(lái)實(shí)現(xiàn)它:
(1.1)先在構(gòu)造函數(shù)中設(shè)置布樂(lè)變量 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)然后設(shè)布爾visible變量值為true,并在要顯示窗口時(shí),再用ShowWindow(SW_SHOW)既可。visible = true;
ShowWindow(SW_SHOW);