Stopping MFC/MDI from Creating New MDI Child Window On StartupID: Q141725
|
By design, an AppWizard-generated MDI application will display a new MDI child window on startup. To turn off this feature, an application needs to use CCommandLineInfo::FileNothing as the shell command when calling the ProcessShellCommand() function.
The enum value CCommandLineInfo::FileNothing is missing from the online
documentation of CCommandLineInfo::m_nShellCommand. However, its
definition can be found in the header file \Msdev\Mfc\Include\Afxwin.h.
The ProcessShellCommand() function is called by InitInstance() of any
CWinApp-derived class, so you can use the following sample code to disable
the creation of a new MDI child window at startup:
BOOL CMyWinApp::InitInstance()
{
...
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Don't display a new MDI child window during startup
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
...
}
Additional query words: kbinf 4.00
Keywords : kbcode kbMFC KbUIDesign kbVC
Version : 4.00
Platform : NT WINDOWS
Issue type :
Last Reviewed: August 5, 1999