在項(xiàng)目中有如下的一個(gè)需求:
軟件在網(wǎng)絡(luò)啟動(dòng)狀態(tài)下顯示主窗口,而在單機(jī)狀態(tài)下只顯示其子對(duì)話框(我的是無(wú)模式的).
在網(wǎng)上找了一天,各種辦法都似乎不太好,
不過(guò)晚上終于找到了一個(gè)不錯(cuò)的解決辦法.
使得我很好的解決了這個(gè)問(wèn)題.
????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);
????}以上為我實(shí)現(xiàn)代碼.
實(shí)現(xiàn)主窗口隱藏的是SetWindowPos(),從代碼很容易理解出來(lái),就是把主窗口的坐標(biāo)設(shè)置為(0,0,0,0),也就是說(shuō)把主窗口設(shè)置為一個(gè)點(diǎn),并且點(diǎn)處于原點(diǎn)處.
其實(shí)是一種偽隱藏,可是它還是實(shí)現(xiàn)了隱藏,并且實(shí)現(xiàn)的效果相當(dāng)不錯(cuò),沒(méi)有閃爍,也沒(méi)有副作用(至少現(xiàn)在沒(méi)有發(fā)現(xiàn)有).
不過(guò)要注意的是,無(wú)模式對(duì)話框關(guān)閉時(shí)候除了要DestroyWindow(),還需要PostQuitMessage(0);將主窗口給關(guān)閉掉,否則程序進(jìn)程實(shí)際還在.
嘿嘿,實(shí)在是很不錯(cuò)的解決方案,簡(jiǎn)單有效.