http://blog.csdn.net/crazyvoice/article/details/6185461編程
在MDI程序中,當應用程序啓動時,都會自動建立一個空白窗口。但有時咱們並不但願建立這樣的空白窗口。好比,對於一個文件瀏覽器來講,空白窗口就沒有什麼意義。
要防止空白窗口的建立,首先就要明白這個窗口是如何被建立的。在 InitInstance()中,有一個命令行的執行過程,當命令行上沒有參數時,函數ParseCommandLine(cmdInfo)會將 CCommandLineInfo::m_nShellCommand成員置爲CCommandLineInfo::FileNew,這將致使 ProcessShellCommand調用CWinApp::OnFileNew成員函數。要想防止程序開始時就調用OnFileNew,解決方法之一是去掉與命令行有關的代碼,可是這樣就沒有了命令行處理功能。另外一種方法是在ProcessShellCommand調用以前加一句 cmdInfo.m_nShellCommand =CCommandLineInfo::FileNothing。 |
啓動時不新建一個空文檔
InitInstance:
if(cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
新建空文檔時文檔都被最大化
CXXXView::OnInitialUpdate
CMDIChildWnd *pWnd=(CMDIChildWnd *)GetParentFrame();
pWnd->MDIMaximize(); 瀏覽器