MFC視窗啟動最大化

2021-09-30 10:36:55 字數 1468 閱讀 9600

常用mfc進行程式設計的人都知道單文件的程式設計,在程式設計過程中發現欲使程式在啟動時就能最大化顯示,這裡的處理方法有多種,但是結果卻不一樣。

首先大家最常用的就是在view類的precreatewindow函式中,修改視窗型別cs的值,也就是或上乙個「最大化」即:

[cpp]view plain

copy

cs.style |= ws_maximize;   

[cpp]view plain

copy

m_pmainwnd->showwindow(sw_show);   為

[cpp]view plain

copy

m_pmainwnd->showwindow(sw_showmaximized);  

這兩種方法都可以達到最大化的目的,但是你會發現,當程式執行時,視窗有乙個從普通視窗到最大化視窗的過程,看起來很醜,這是視窗的重畫造成的。

[cpp]view plain

copy

// parse command line for standard shell commands, dde, file open

ccommandlineinfo cmdinfo;  

parsecommandline(cmdinfo);  

// dispatch commands specified on the command line

if(!processshellcommand(cmdinfo))  

return

false;  

// the one and only window has been initialized, so show and update it.

m_pmainwnd->showwindow(sw_show);  

m_pmainwnd->updatewindow();  

通常我們改的就是上面的倒數第二行**,那麼也就是在這行**之前程式已經產生了乙個視窗。於是在這個視窗產生前,把它「消滅」掉豈不正好。

繼續跟蹤,發現也就是上面提到的**中的processshellcommand(cmdinfo)這一句**在搞鬼,所以可做如下修改:

1.在  processshellcommand(cmdinfo)之前,加一句

[cpp]view plain

copy

m_ncmdshow = sw_showmaximized;  

2.把m_pmainwnd->showwindow(sw_show);修改為

[cpp]view plain

copy

m_pmainwnd->showwindow(sw_showmaximized);  

這樣視窗一下子就最大化,不會再有原來的問題了!

MFC視窗啟動最大化

常用mfc進行程式設計的人都知道單文件的程式設計,在程式設計過程中發現欲使程式在啟動時就能最大化顯示,這裡的處理方法有多種,但是結果卻不一樣。cs.style ws maximize m pmainwnd showwindow sw show 為 m pmainwnd showwindow sw s...

視窗最大化

1 jframe 視窗最大化,在建構函式中 新增如下 this.setextendedstate jframe.maximized both 2 jinternalframe視窗最大化,需要在新增到jframe的desktoppane之後設定,如下 bookframe.setmaximum true...

如何使視窗啟動最大化?

1.如何使子視窗啟動時最大化?view.cpp中的 onupdate 函式中加入 子視窗啟動就最大化 this getparentframe showwindow sw showmaximized 2.如何使程式執行時最大化?的 initinstace 中令 pmainframe showwindo...