FIX: Advanced Options for SDI Application in Appwizard (139422)
The information in this article applies to:
- The Microsoft Foundation Classes (MFC), when used with:
- Microsoft Visual C++, 32-bit Editions 4.0
- Microsoft Visual C++, 32-bit Editions 4.1
- Microsoft Visual C++, 32-bit Enterprise Edition 4.2
- Microsoft Visual C++, 32-bit Professional Edition 4.2
This article was previously published under Q139422 SYMPTOMS
Some of the Advance Options in Step 4 of AppWizard have no effect on an
AppWizard-generated SDI applications. The Maximized and Minimized options
for the Main Frame Window in the Window Styles tab have no effect when
selected for an SDI application.
The message generated in Visual C++ version 4.0, 4.1, or 4.2 that says
these styles have no effect on Windows 95 is also wrong. The problem isn't
specific to Windows 95.
CAUSE
The AppWizard-generated code does not have code to show the main window
maximized or minimized. MFC code shows the main window with value passed
into the program through the nCmdShow argument to WinMain. This value is
normally SW_NORMAL and hence the window will not be maximized or minimized.
RESOLUTION
MFC stores the value passed through the nCmdShow argument to WinMain in
CWinApp::m_nCmdShow. This variable can be modified to get the behavior you
want. To have an SDI application initially maximized or minimized, set
this variable to the appropriate value. Set m_nCmdShow to SW_SHOWMAXIMIZED
to maximize or SW_SHOWMINIMIZED to minimize the main frame window
initially. This variable has to be modified in the InitInstance() function
of the CWinApp-derived class before the main window is made visible.
In the Visual C++ 4.0 or 4.1 AppWizard-generated application, set this
variable before this line:
if (!ProcessShellCommand(cmdInfo))
return FALSE;
If the application was generated with an earlier version of Visual C++,
set m_nCmdShow to the appropriate value before this line:
OnFileNew();
In the Visual C++ 4.2 AppWizard-generated application do the following:
if (!ProcessShellCommand(cmdInfo))
return FALSE;
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. The problem was corrected in Visual C++
version 5.0.
Modification Type: | Minor | Last Reviewed: | 6/23/2005 |
---|
Keywords: | kbBug kbfix kbNoUpdate kbVC500fix kbwizard KB139422 |
---|
|