Stopping MFC/MDI from Creating New MDI Child Window On Startup
ID: Q141725
|
The information in this article applies to:
-
The Microsoft Foundation Classes (MFC), included with:
-
Microsoft Visual C++, 32-bit Editions, version 4.0
SUMMARY
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.
MORE INFORMATION
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:
Sample Code
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 :