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 :


Last Reviewed: August 5, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.