top
Loading...
操作過程動態顯示
p>在程序設計中,經常遇到這種情況:計算機在處理大量數據時,用戶等待處理結果,而此時的用戶界面往往顯得單調乏味。如果有一個能動態顯示操作過程的進度條就好了,它既使用戶界面具有動感,又增加了程序的趣味性。 筆者用VB 5.0編制應用系統時,分別用VB 5.0的進度條控件和滑動片控件,以及API函數BitBlt()三種方法實現操作過程動態顯示。實現效果如圖所示。現用兩個應用實例說明如下。

★應用實例一:用VB 5.0的進度條控件和滑動片控件分別實現操作過程動態顯示。
(1)插入進度條控件和滑動片控件的方法:在VB 5.0主菜單的“工程"項中,選擇“部件(0)",在彈出的控件欄中,雙擊“Microsoft Windows Common Control 5.0"項,按“確定"鍵返回。那么在窗體工具箱中就有了上述控件。
(2)建立含有如下控件的窗體:
控件 NAME CAPTION INTERVAL MAX FONT FORECOLOR
窗體 FORM1 用VB 5.0實現操作過程動態顯示
進度條 PROGRESSBAR1 100
滑動片 SLIDER1 100
計時器 TIMER1 50
標簽 LABEL1 宋體(小四)&H00FF0000&(藍色)
標簽 LABEL2 宋體(小四)&H00FF0000&(藍色)
命令按鈕 COMMAND1 退出
(3)輸入計時器的程序代碼:
Private Sub Timer1_Timer()
Static count As Integer
count = count + 1
Label1.Caption = Str$(count) +“%" 進度條顯示百分比
Label2.Caption = Str$(count) + “%" 滑動片顯示百分比
If count = 100 Then
count = 0
Else
ProgressBar1.Value = count
Slider1.Value = count
End If
End Sub
(4)輸入退出按鈕的程序代碼:
Private Sub Command1_Click()
End
End Sub

★應用實例二:用VB 5.0的API函數BitBlt()實現操作過程動態顯示。
BitBlt()函數格式:
Private Declare Function BitBlt Lib“gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
該函數將點位圖從由hSrcDC參數給出的源設備上拷貝到由hDestDC參數給出的目標設備上。xSrc,ySrc指出被移動的點位圖在源設備上的原點坐標。X,y,nWidth,nHeight指出目標設備的原點坐標、寬度和高度。dwRop參數定義源位圖和目標位圖是如何結合的。參數值&HCC0020表? 源位圖復制到目標位圖上。
(1)建立含有如下控件的窗體:
控件 NAME CAPTION INTERVAL FORECOLOR BACKCOLOR 窗體 FORM1 用BitBlt()函數實現操作過程動態顯示
圖片框 PICTURE2 &H00FFFFFF&(白色)&H00FF0000&(藍色)
圖片框 PICTURE1 &H00000000&(黑色)&H00FFFFFF&(白色)
計時器 TIMER1 10
命令按鈕COMMAND1 退 出
(2)定義窗體級函數和常量:
Option Explicit
Private Declare Function BitBlt Lib “gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Const srccopy = &HCC0020
(3)輸入窗體裝入的程序代碼:
Private Sub Form_Load()
Picture2.Width = Picture1.Width
Picture2.Height = Picture1.Height
End Sub
(4)輸入計時器的程序代碼:
Private Sub Timer1_Timer()
Static counts,r As Integer
Static hh As Single
Static percent As String
hh! = counts / 100
percent$ = Format(hh!, “0%")
Picture1.Cls
Picture2.Cls
Picture1.CurrentX = (Picture1.Width - Picture1.TextHeight(percent$)) / 2
Picture2.CurrentX = Picture1.CurrentX
Picture1.CurrentY = (Picture1.Height - Picture1.TextHeight(percent$)) / 2
Picture2.CurrentY = Picture1.CurrentY
Picture1.Print percent$
Picture2.Print percent$
r% = BitBlt(Picture1.hDC, 0, 0, Picture2.Width * hh!, Picture2.Height, Picture2.hDC, 0, 0, srccopy)
counts = counts + 1
If counts = 100 Then
counts = 0
End If
End Sub
(5)輸入退出按鈕的程序代碼:
Private Sub Command1_Click()
End
End Sub
上述程序在同創P/200,中文Windows 95、Windows NT 4.0,Visual Basic 5.0軟硬件環境下運行通過。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗