Progress Bar - Within StatusBar III

Category: Controls - .Techniques

Date: 02-16-2022

Return to Index


 
'Compilable Example:  (Jose Includes)
#Compiler PBWin 9, PBWin 10
#Compile EXE
#Dim All
%Unicode=1
#Include "win32api.inc"
#Include "commctrl.inc"
%ID_Timer      = 600
%IDC_StatusBar = 601
%IDC_Button    = 602
 
Global hDlg,hBar,hBMP,hGDC As Dword, r As Rect, wPanel,hPanel As Long
 
Function PBMain() As Long
   Dialog New Pixels, 0, "Statusbar Test",300,300,350,100, %WS_OverlappedWindow, 0 To hDlg
   Control Add Button, hDlg, %IDC_Button, "Start",10,10,100,20
   Control Add Statusbar, hDlg, %IDC_StatusBar, "",0,0,0,0
   Control Handle hDlg, %IDC_StatusBar To hBar
   Statusbar Set Parts hDlg, %IDC_StatusBar, 125,99999
   Statusbar Set Text hDlg, %IDC_StatusBar, 1, 0, "Progress Bar   ----->"
   Statusbar Set Text hDlg, %IDC_StatusBar, 2, 0, ""
   Control Set Color hDlg, %IDC_StatusBar, %Red, %Yellow
   Dialog Show Modal hDlg Call DlgProc
End Function
 
CallBack Function DlgProc() As Long
   Local hDC As Dword, i,w,h As Long, r As Rect
   Static PerCent As Long
   Select Case Cb.Msg
      Case %WM_Command
         If Cb.Ctl = %IDC_Button Then SetTimer(Cb.Hndl, %ID_Timer, 500, ByVal %NULL)
      Case %WM_Size
         CreateBar
      Case %WM_Timer
         Control Send hDlg, %IDC_StatusBar, %SB_GetRect, 1, VarPtr(r)
         If PerCent > 100 Then
            Percent = 0 : KillTimer Cb.Hndl, %ID_Timer
            Control ReDraw hDlg, %IDC_StatusBar
         Else
            PerCent = PerCent + 10
            Control Send hDlg, %IDC_StatusBar, %SB_GetRect, 1, VarPtr(r)
            w = (r.nRight - r.nLeft + 1) : h = r.nBottom - r.nTop-4
            hDC = GetDC(hBar)
            BitBlt hDC,r.nLeft+(PerCent/10-1)*w/10,4,0.8*w/10,h,hGDC,0,0, %SrcCopy
            ReleaseDC(hBar,hDC)
         End If
   End Select
End Function
 
Sub CreateBar
   Control ReDraw hDlg, %IDC_StatusBar
   Control Send hDlg, %IDC_StatusBar, %SB_GetRect, 1, VarPtr(r)
   wPanel = r.nRight - r.nLeft + 1 : hPanel = r.nBottom - r.nTop + 1
   Graphic Bitmap New 0.8*(wPanel/10),hPanel-2 To hBMP
   Graphic Attach hBMP, 0 : Graphic Get DC To hGDC
   Graphic Color %Blue, %Blue : Graphic Clear
End Sub
 
'gbs_00802
'Date: 03-10-2012


created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm