Registrations are now open. Join us today!
There is still a lot of work to do on the wiki yet! More information about editing can be found here.
Already have an account?

Microsoft KB Archive/171492

From BetaArchive Wiki

Article ID: 171492

Article Last Modified on 2/24/2004


  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft PowerPoint 97 Standard Edition

This article was previously published under Q171492


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.


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.


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:

170365 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:

171554 INFO: Visual Basic 5.0 Fixes in Visual Studio 97 Service Pack 2


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: kbbug kbfix kbvbp500sp2fix kbvs97sp2fix kbprogramming KB171492