KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q180527: BUG: Setting WindowState = 0 Doesn’t Set Window State to Normal

Article: Q180527
Product(s): Microsoft Visual Basic for Windows
Version(s): 3.0
Operating System(s): 
Keyword(s): kbToolkit kbVBp kbVBp500 kbVBp600bug kbOSWinCEsearch kbOSWinCE100 kbGrpDSVB
Last Modified: 15-NOV-2001

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

- Microsoft eMbedded Visual Basic, version 3.0 
- Microsoft Windows CE Toolkit for Visual Basic 6.0 
-------------------------------------------------------------------------------

SYMPTOMS
========

Setting the WindowState property of a form to '0 - Normal' has no effect.

RESOLUTION
==========

Save the form's height and width before changing the WindowState property (such
as Maximizing), and then restore the height and width when desired as follows:

     Option Explicit
     Dim FormHeight
     Dim FormWidth

     Private Sub Form_Load()
        'initialize form size, could be set at design-time also.
        Form1.height = 2000
        Form1.width = 3000
        'Save the form's height and width.
        FormHeight = Form1.Height
        FormWidth = Form1.Width
        Command1.Caption = "Maximized"
        Command2.Caption = "Normal"
     End Sub

     Private Sub Command1_Click()
        Form1.WindowState = 2 'Maximized
     End Sub

     Private Sub Command2_Click()
        'Restore the form's original height and width.
        Form1.Height = FormHeight
        Form1.Width = FormWidth
     End Sub

STATUS
======

Microsoft has confirmed this to be a problem in the Microsoft products that are
listed at the beginning of this article.

MORE INFORMATION
================

Steps to Reproduce Behavior
---------------------------

1. Start a new Windows CE HPC Pro Project in either eMbedded Visual Basic or
  Visual Basic 6.0. Form1 is created by default.

2. Add two command buttons to Form1, placing them in the upper-left-hand corner
  of the form so they will be visible when the form is resized by the Load
  event of the form.

3. Paste the following code into Form1:

        Private Sub Form_Load()
             Command1.Caption = "Maximized"
             Command2.Caption = "Normal"
             'initialize form size, could be set at design-time also.
             Form1.height = 2000
             Form1.width = 3000
        End Sub

        Private Sub Command1_Click()
             Form1.WindowState = 2 'Maximized
        End Sub

        Private Sub Command2_Click()
             Form1.WindowState = 0 'Normal
        End Sub

4. Press F5 to run the project.

5. Click on Command1 and note that the form is maximized.

6. Click on Command2 and note that the window does not return to its normal
  state.

Additional query words: wince vbce vbce6 evb

======================================================================
Keywords          : kbToolkit kbVBp kbVBp500 kbVBp600bug kbOSWinCEsearch kbOSWinCE100 kbGrpDSVB 
Technology        : kbVBSearch kbAudDeveloper kbZNotKeyword2 kbVBeMbSearch kbWinCETKVBSearch kbWinCESearch kbVBeMb300
Version           : :3.0
Issue type        : kbbug
Solution Type     : kbpending

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

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 1986-2002.