DOCUMENT:Q142317  16-AUG-2001  [visualc]
TITLE   :HOWTO: How to Create a Minimized/Maximized MDI Child Window
PRODUCT :Microsoft C Compiler
PROD/VER::1.0,1.5,1.51,1.52,2.0,2.1,2.2,4.0
OPER/SYS:
KEYWORDS:kbDocView kbMFC KbUIDesign kbVC kbGrpDSMFCATL

======================================================================
-------------------------------------------------------------------------------
The information in this article applies to:

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

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);
   }

Additional query words: kbinf 1.00 2.00 2.10 2.20 4.00 1.50 PreCreateWindow CREATESTRUCT CChildFrame Maximized WS_MAXIMIZE Cs.style

======================================================================
Keywords          : kbDocView kbMFC KbUIDesign kbVC kbGrpDSMFCATL 
Technology        : kbAudDeveloper kbMFC
Version           : :1.0,1.5,1.51,1.52,2.0,2.1,2.2,4.0
Issue type        : kbhowto

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  MICROSOFT DISCLAIMS
ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO
EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR
ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL,
CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF
MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.  SOME STATES DO NOT ALLOW THE EXCLUSION
OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES
SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 2001.