|
|
![]() |
|
||
|
|
|||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||
| 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. |
|
|
This
is simple code that demonstrates how to use a normal VB progress bar on a parent form (SDI or MDI) to track the activity being performed in another
form, even when that form is modal. 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. |
![]() |