FIX: ActiveX Control Incorrectly Reports ScaleWidth/ScaleHeight

Last reviewed: December 19, 1997
Article ID: Q171492
The information in this article applies to:
  • Microsoft Visual Basic, Learning, Professional, and Enterprise Editions for Windows, version 5.0
  • Microsoft PowerPoint 97 for Windows

SYMPTOMS

When using an ActiveX control created in Visual Basic 5.0 in Microsoft PowerPoint 97, the ScaleWidth and ScaleHeight of the control are changed after going to "Slide Show" mode and back.

CAUSE

PowerPoint 97 zooms the control's window when the slide is displayed, even if Zoom is set to 100%. Because ScaleWidth and ScaleHeight are based on the size of the control's window, and PowerPoint doesn't resize this window back to the control's extents when the control gets deactivated, the window retains its "zoomed" size until explicitly resized. In all containers that don't zoom, these values are always identical and do not exhibit this problem.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug has been fixed in Visual Studio 97 Service Pack 2.

For more information on the Visual Studio 97 Service Pack 2, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q170365
   TITLE     : INFO: Visual Studio 97 Service Packs - What, Where, and Why

For a list of the Visual Basic 5.0 bugs that were fixed in the Visual Studio 97 Service Pack 2, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q171554
   TITLE     : INFO: Visual Basic 5.0 Fixes in Visual Studio 97
               Service Pack 2

MORE INFORMATION

Steps to Reproduce Behavior

  1. Create a new ActiveX Control Project.

  2. Select Project1 Properties from the Project menu, and change the Project Name to "ScaleTest."

  3. Add the following to the Paint event:

          Private Sub UserControl_Paint()
    
             Dim sCaption As String
             sCaption = ScaleWidth & " ," & ScaleHeight
             CurrentX = (ScaleWidth - TextWidth(sCaption)) / 2
             CurrentY = (ScaleHeight - TextHeight(sCaption)) / 2
             Print sCaption
             Line (0, ScaleHeight / 2)-(ScaleWidth / 2, 0)
             Line (ScaleWidth / 2, 0)-(ScaleWidth, ScaleHeight / 2)
             Line (ScaleWidth, ScaleHeight / 2)-(ScaleWidth / 2, ScaleHeight)
             Line (ScaleWidth / 2, ScaleHeight)-(0, ScaleHeight / 2)
          End Sub
    
    

  4. Select "Make ScaleTest.ocx" from the File menu.

  5. Close Visual Basic and start PowerPoint 97.

  6. Create a new Blank Presentation that contains one Blank Slide.

  7. Use the "More Controls" button on the ToolBox to add the previously- created control to the slide. Note the ScaleWidth and ScaleHeight.

  8. Select "Slide Show" from the View menu. The control will get larger and the ScaleWidth and ScaleHeight will be changed.

  9. Press the Escape key to return to layout mode and note that the ScaleWidth and ScaleHeight still reflect the "Slide Show" settings.
Keywords          : kbprg VS97FixlistSP2 VB5FixlistSP2 GnrlVB VS97FixlistSP3
Technology        : kbvba
Version           : WINDOWS:5.0 97
Platform          : WINDOWS
Issue type        : kbbug
Solution Type     : kbfix kbservicepack


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


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.

Last reviewed: December 19, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.