Microsoft KB Archive/171492

= FIX: ActiveX Control Incorrectly Reports ScaleWidth/ScaleHeight =

Article ID: 171492

Article Last Modified on 2/24/2004

-

APPLIES TO


 * 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



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:

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
 Create a new ActiveX Control Project. Select Project1 Properties from the Project menu, and change the Project Name to "ScaleTest."  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  Select "Make ScaleTest.ocx" from the File menu. Close Visual Basic and start PowerPoint 97. Create a new Blank Presentation that contains one Blank Slide.</li> Use the "More Controls" button on the ToolBox to add the previously- created control to the slide. Note the ScaleWidth and ScaleHeight.</li> Select "Slide Show" from the View menu. The control will get larger and the ScaleWidth and ScaleHeight will be changed.</li> Press the Escape key to return to layout mode and note that the ScaleWidth and ScaleHeight still reflect the "Slide Show" settings.</li></ol>

Keywords: kbbug kbfix kbvbp500sp2fix kbvs97sp2fix kbprogramming KB171492

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.