1. 程式人生 > >基於Dialog程式,啟動時不顯示主視窗,只顯示子視窗的實現

基於Dialog程式,啟動時不顯示主視窗,只顯示子視窗的實現

在專案中有如下的一個需求:
軟體在網路啟動狀態下顯示主視窗,而在單機狀態下只顯示其子對話方塊(我的是無模式的).
在網上找了一天,各種辦法都似乎不太好,
不過晚上終於找到了一個不錯的解決辦法.
使得我很好的解決了這個問題.
if (theApp.m_bUnConnect)
    
{
        CRecordDlg
* dlg;
        CWnd
* m_pCWnd =this;
        dlg 
=new CRecordDlg(m_pCWnd);
        dlg
->Create(IDD_DLG_RECORD,m_pCWnd);
        dlg
->ShowWindow(SW_SHOW); 
        
this->SetWindowPos(&wndTop,0,0,0,0,NULL);
    }
// if ()
else
    
{
       ShowWindow(SW_MAXIMIZE);
    }
以上為我實現程式碼.
實現主視窗隱藏的是SetWindowPos(),從程式碼很容易理解出來,就是把主視窗的座標設定為(0,0,0,0),也就是說把主視窗設定為一個點,並且點處於原點處.
其實是一種偽隱藏,可是它還是實現了隱藏,並且實現的效果相當不錯,沒有閃爍,也沒有副作用(至少現在沒有發現有).
不過要注意的是,無模式對話方塊關閉時候除了要DestroyWindow(),還需要PostQuitMessage(0);將主視窗給關閉掉,否則程式程序實際還在.

嘿嘿,實在是很不錯的解決方案,簡單有效.

posted on 2006-12-19 22:06

楊粼波 閱讀(2341) 評論(0)  編輯 收藏 引用 所屬分類: 學習筆記C++