HOWTO: How to Create a Minimized/Maximized MDI Child Window (142317)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++ for Windows, 16-bit edition 1.0
    • Microsoft Visual C++ for Windows, 16-bit edition 1.5
    • Microsoft Visual C++ for Windows, 16-bit edition 1.51
    • Microsoft Visual C++ for Windows, 16-bit edition 1.52
    • Microsoft Visual C++, 32-bit Editions 1.0
    • Microsoft Visual C++, 32-bit Editions 2.0
    • Microsoft Visual C++, 32-bit Editions 2.1
    • Microsoft Visual C++, 32-bit Editions 2.2
    • Microsoft Visual C++, 32-bit Editions 4.0

This article was previously published under Q142317

SUMMARY

To create an initially minimized or maximized document in an MDI application, derive a class from CMDIChildWnd and override ActivateFrame(). In the ActivateFrame() member function, call the ActivateFrame() function in the base class, and pass SW_SHOWMINIMIZED or SW_SHOWMAXIMIZED as the parameter.

MORE INFORMATION

If you're using a version of Visual C++ earlier than 4.0, it is necessary to derive a class from CMDIChildWnd and substitute the new class name in the CMultiDocTemplate used in your CWinApp-derived InitInstance() function. To do so, use ClassWizard to add a class called CChildFrame derived from CMDIChildWnd. Include the header file in your application's .cpp file. Then change the line indicated below in your InitInstance() function:
    CMultiDocTemplate* pDocTemplate;
    pDocTemplate = new CMultiDocTemplate(
        IDR_MDIAPPTYPE,
        RUNTIME_CLASS(CMDIAppDoc),
        RUNTIME_CLASS(CChildFrame), // change CMDIChildWnd to CChildFrame
        RUNTIME_CLASS(CMDIAppView));
    AddDocTemplate(pDocTemplate);
				
In Visual C++ 4.0, deriving a class from CMDIChildWnd is not required because one is already provided for you.

In the CChildFrame class, override the ActivateFrame() member function as follows:
void CChildFrame::ActivateFrame(int nCmdShow)
{
    if (nCmdShow == -1)
        nCmdShow = SW_SHOWMAXIMIZED;

    CMDIChildWnd::ActivateFrame(nCmdShow);
}
				

Modification Type:MajorLast Reviewed:12/2/2003
Keywords:kbDocView kbhowto KbUIDesign KB142317