程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 操作過程動態顯示

操作過程動態顯示

編輯:VB綜合教程
在程序設計中,經常遇到這種情況:計算機在處理大量數據時,用戶等待處理結果,而此時的用戶界面往往顯得單調乏味。如果有一個能動態顯示操作過程的進度條就好了,它既使用戶界面具有動感,又增加了程序的趣味性。筆者用VB5.0編制應用系統時,分別用VB5.0的進度條控件和滑動片控件,以及API函數BitBlt()三種方法實現操作過程動態顯示。實現效果如圖所示。現用兩個應用實例說明如下。
  ★應用實例一:用VB5.0的進度條控件和滑動片控件分別實現操作過程動態顯示。
  (1)插入進度條控件和滑動片控件的方法:在VB5.0主菜單的“工程"項中,選擇“部件(0)",在彈出的控件欄中,雙擊“MicrosoftWindowsCommonControl5.0"項,按“確定"鍵返回。那麼在窗體工具箱中就有了上述控件。
  (2)建立含有如下控件的窗體:
  控件NAMECAPTIONINTERVALMAXFONTFORECOLOR
  窗體FORM1用VB5.0實現操作過程動態顯示
  進度條PROGRESSBAR1100
  滑動片SLIDER1100
  計時器TIMER150
  標簽LABEL1宋體(小四)&H00FF0000&(藍色)
  標簽LABEL2宋體(小四)&H00FF0000&(藍色)
  命令按鈕COMMAND1退出
  (3)輸入計時器的程序代碼:
  PrivateSubTimer1_Timer()
  StaticcountAsInteger
  count=count+1
  Label1.Caption=Str$(count)+“%"'進度條顯示百分比
  Label2.Caption=Str$(count)+“%"'滑動片顯示百分比
  Ifcount=100Then
  count=0
  Else
  ProgressBar1.Value=count
  Slider1.Value=count
  EndIf
  EndSub
  (4)輸入退出按鈕的程序代碼:
  PrivateSubCommand1_Click()
  End
  EndSub
  ★應用實例二:用VB5.0的API函數BitBlt()實現操作過程動態顯示。
  BitBlt()函數格式:
  PrivateDeclareFunctionBitBltLib“gdi32"(ByValhDestDCAsLong,ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValdwRopAsLong)AsLong
  該函數將點位圖從由hSrcDC參數給出的源設備上拷貝到由hDestDC參數給出的目標設備上。xSrc,ySrc指出被移動的點位圖在源設備上的原點坐標。X,y,nWidth,nHeight指出目標設備的原點坐標、寬度和高度。dwRop參數定義源位圖和目標位圖是如何結合的。參數值&HCC0020表示將源位圖復制到目標位圖上。
  (1)建立含有如下控件的窗體:
  控件NAMECAPTIONINTERVALFORECOLORBACKCOLOR窗體FORM1用BitBlt()函數實現操作過程動態顯示
  圖片框PICTURE2&H00FFFFFF&(白色)&H00FF0000&(藍色)
  圖片框PICTURE1&H00000000&(黑色)&H00FFFFFF&(白色)
  計時器TIMER110
  命令按鈕COMMAND1退出
  (2)定義窗體級函數和常量:
  OptionExplicit
  PrivateDeclareFunctionBitBltLib“gdi32"(ByValhDestDCAsLong,ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValdwRopAsLong)AsLong
  Constsrccopy=&HCC0020
  (3)輸入窗體裝入的程序代碼:
  PrivateSubForm_Load()
  Picture2.Width=Picture1.Width
  Picture2.Height=Picture1.Height
  EndSub
  (4)輸入計時器的程序代碼:
  PrivateSubTimer1_Timer()
  Staticcounts,rAsInteger
  StatichhAsSingle
  StaticpercentAsString
  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.Printpercent$
  Picture2.Printpercent$
  r%=BitBlt(Picture1.hDC,0,0,Picture2.Width*hh!,Picture2.Height,Picture2.hDC,0,0,srccopy)
  counts=counts+1
  Ifcounts=100Then
  counts=0
  EndIf
  EndSub
  (5)輸入退出按鈕的程序代碼:
  PrivateSubCommand1_Click()
  End
  EndSub
  上述程序在同創P/200,中文Windows95、WindowsNT4.0,VisualBasic5.0軟硬件環境下運行通過。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved