KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q190179: HOWTO: Change ProgressBar Orientation at Run-Time

Article: Q190179
Product(s): Microsoft Visual Basic for Windows
Version(s): WINDOWS:6.0
Operating System(s): 
Keyword(s): kbGrpDSVB
Last Modified: 11-JAN-2001

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

- Microsoft Visual Basic Learning Edition for Windows, version 6.0 
- Microsoft Visual Basic Professional Edition for Windows, version 6.0 
- Microsoft Visual Basic Enterprise Edition for Windows, version 6.0 
-------------------------------------------------------------------------------

SUMMARY
=======

When changing the Orientation property of a ProgressBar, the bar changes
position on the form. If this Orientation is changed at run-time, it could
overlap other controls or be displayed off the visible portion of the form. This
article describes how to change the Orientation and keep the control in the same
position.

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

Step-by-Step Example
--------------------

1. Start a new Visual Basic project. Form1 is created by default.

2. Select Components from the Project menu. Check "Microsoft Windows Common
  Controls 6.0" and click OK.

3. Add a Progress Bar, ProgessBar1, to Form1.

4. Add a CommandButton, Command1, to Form1.

5. Add the following code to Form1's code window:

        Private Sub Command1_Click()
           Dim iWidth As Integer
           Dim iHeight As Integer
           Dim iLeft As Integer
           Dim iTop As Integer

           ' Store the current position
           iWidth = ProgressBar1.Width
           iHeight = ProgressBar1.Height
           iLeft = ProgressBar1.Left
           iTop = ProgressBar1.Top

           ' This only works with Smooth Scrolling
           ProgressBar1.Scrolling = ccScrollingSmooth

           ' Change the Orientation to the opposite
           If ProgressBar1.Orientation = ccOrientationVertical Then
               ProgressBar1.Orientation = ccOrientationHorizontal
           Else
               ProgressBar1.Orientation = ccOrientationVertical
           End If

           ' Reset the new position with the old position
           ProgressBar1.Width = iWidth
           ProgressBar1.Height = iHeight
           ProgressBar1.Left = iLeft
           ProgressBar1.Top = iTop

           DoEvents
           Form1.Refresh
           ProgressBar1.Value = 0
           ProgressBar1.Max = 1000
           For i = 1 To 1000
               ProgressBar1.Value = i
           Next i
        End Sub

6. Run the Project and click Command1 multiple times to see vertical and
  horizontal scrolling.

Additional query words: kbControl kbVBp kbdsd kbDSupport kbVBp600

======================================================================
Keywords          : kbGrpDSVB 
Technology        : kbVBSearch kbAudDeveloper kbZNotKeyword6 kbZNotKeyword2 kbVB600Search kbVBA600 kbVB600
Version           : WINDOWS:6.0
Issue type        : kbhowto

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

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.