FIX: ActiveX Control Incorrectly Reports ScaleWidth/ScaleHeight
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:
Q170365 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:
Q171554 INFO: Visual Basic 5.0 Fixes in Visual Studio 97 Service Pack 2
MORE INFORMATIONSteps 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.
- Use the "More Controls" button on the ToolBox to add the previously-
created control to the slide. Note the ScaleWidth and ScaleHeight.
- Select "Slide Show" from the View menu. The control will get larger
and the ScaleWidth and ScaleHeight will be changed.
- Press the Escape key to return to layout mode and note that the
ScaleWidth and ScaleHeight still reflect the "Slide Show" settings.
Additional query words:
Keywords : kbprg GnrlVb kbVS97sp2fix kbGrpVB kbvbp500sp2fix
Version : WINDOWS:5.0,97
Platform : WINDOWS
Issue type : kbbug
|