|
![]() |
![]() ![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||
Visual Basic Common Control API
Routines SetParent: Display Modal Form Activity in a Parent Form's VB ProgressBar |
||
Posted: | Thursday June 29, 1999 | |
Updated: | Monday December 26, 2011 | |
Applies to: | VB4-32, VB5, VB6 | |
Developed with: | VB6, Windows NT4 | |
OS restrictions: | None | |
Author: | VBnet - Randy Birch | |
Related: |
SetParent: Add a VB Progress Bar to a VB StatusBar SendMessage: Change the Colour of a VB ProgressBar Pure VB: Customizable PhotoShop-Style ProgressBar Pure VB: Customizable PhotoShop-Style ProgressBar in a MDI App CreateWindowEx: Creating a Common Control ProgressBar- Overview CreateWindowEx: Creating the Common Control Flood Panel via the API SetParent: Display Modal Form Activity on a Parent Form's 'PhotoShop-style' ProgressBar SetParent: Display Modal Form Activity in a Parent Form's VB ProgressBar |
|
Prerequisites |
None. |
|
![]() The demo also shows how to call SetParent to embed the progress bar inside the status bar panel. |
BAS Module Code |
None. |
|
Form Code - Parent Form |
![]() |
Create two new forms.
To the main 'parent' form, add a command button (Command1), a status bar (StatusBar1) with at least 1 panel, and a common control progress bar (ProgressBar1). To the 'child' modal form, add a command button (Command1). Add the following code to the 'Parent' (calling) form: |
|
Option Explicit '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright ©1996-2011 VBnet/Randy Birch, All Rights Reserved. ' Some pages may also contain other copyrights by the author. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Distribution: You can freely use this code in your own ' applications, but you may not reproduce ' or publish this code on any web site, ' online service, or distribute as source ' on any media without express permission. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Declare Function SetParent Lib "user32" _ (ByVal hWndChild As Long, _ ByVal hWndNewParent As Long) As Long Private Sub Form_Load() Me.Move (Screen.Width - Me.Width) \ 2, _ (Screen.Height - Me.Height) \ 2 SetParent ProgressBar1.hWnd, StatusBar1.hWnd With ProgressBar1 .Visible = False .Align = vbAlignNone .Appearance = ccFlat .BorderStyle = ccNone .Move 40, _ 40, _ StatusBar1.Panels(1).Width - 40, _ StatusBar1.Height - 40 .ZOrder 1 End With StatusBar1.Panels(1).Text = "ProgressBarwill appear here." End Sub Private Sub Command1_Click() Command1.Enabled = False With Form2 Set .ParentForm = Me .Show vbModal End With Command1.Enabled = True End Sub Public Sub ProgBarInitialize(pbMin As Integer, _ pbMax As Integer, _ pbInitValue As Integer) With ProgressBar1 .Max = pbMax .Min = pbMin .Value = pbInitValue .ZOrder 0 .Visible = True End With End Sub Public Sub ProgBarTerminate() ProgressBar1.Visible = False End Sub |
Form Code - Modal (Child) Form |
![]() |
Add the following code to the Child form: |
|
Option Explicit Private frmParent As Form Private Sub Form_Load() Me.Move (Screen.Width - Me.Width) \ 2, _ (Screen.Height - Me.Height) \ 2 End Sub Private Sub Command1_Click() Dim cnt As Integer 'initialize the progress bar: 'min = 0, max = 5000, initial = 0 frmParent.ProgBarInitialize 0, 5000, 0 For cnt = 1 To 5000 '[activity code here] 'show progress frmParent.ProgressBar1.Value = cnt DoEvents Next frmParent.ProgBarTerminate End Sub Public Property Set ParentForm(ByVal frm As Form) Set frmParent = frm End Property Private Sub Form_Unload(Cancel As Integer) Set frmParent = Nothing End Sub |
Comments |
When run, the progress bar in the parent form will update based on the modal child's activity. |
|
|
|
|||||
|
|||||
|
|||||
Copyright ©1996-2011 VBnet and Randy Birch. All Rights Reserved. |
![]() |