【轉】對話框任務欄隱藏
隱藏這個Main Dialog的思路就是把這個Dialog看成一個子窗口,然后再把WS_EX_APPWINDOW屬性去掉。WS_EX_APPWINDOW不大常用,MSDN的解釋是:
Forces a top-level window onto the taskbar when the window is visible.把頂層的并且可見的窗口放到任務欄上,移除 WS_EX_APPWINDOW 很容易:
ModifyStyleEx(WS_EX_APPWINDOW, 0);就可以了。
那么什么辦法能夠最簡單的實現創建一個父窗口呢?CFrameWnd 就有點笨了,干脆就用自己好了。在
BOOL CHideApp::InitInstance()中:
CHideDlg dlgParent; dlgParent.Create(IDD_HIDE_DIALOG); dlgParent.ShowWindow(SW_HIDE); //dlgParent.ShowWindow(SW_SHOW); CHideDlg dlg(&dlgParent); m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); dlgParent.DestroyWindow();在BOOL CHideDlg::OnInitDialog()中:
this->ModifyStyleEx(WS_EX_APPWINDOW, 0);只短短幾行,就實現了對話框在任務欄的隱藏。

如果使用 CDialog 的話,ALT+TAB 圖標就不對了:) 之前我也試過用 CWnd,可恨的是它還要去注冊窗口類,相比之下還是CHideDlg 最經濟,你說呢?祝大家身體健康,每天都有新發現!
E-Mail : webmaster@sanjin.51.net QQ : 923452