[轉]VC中如何實現窗口的隱藏


用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); 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM