📄 ba18.htm
字号:
<HTML>
<HEAD>
<TITLE>操作过程动态显示</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
</head>
<p align="center"><script src="../../1.js"></script></a>
<BODY topMargin=4 vLink=#0000ff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD height="52">
<DIV align=center>
<CENTER>
<table border=0 cellpadding=0 cellspacing=0 width=679 align="center">
<tbody>
<tr>
<td width=200 height="59">
</TD></TR><!--msnavigation--></TBODY></TABLE>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tbody>
<tr><!--msnavigation--><td valign=top height="235">
<div align=center>
<table border=1 bordercolor=#b9d9ff cellpadding=0 cellspacing=0
class=table width=755>
<center>
<tr>
<td width="100%" height="3">
<div align="center"> <strong><big>操作过程动态显示</big></strong></span></div>
</td>
</tr>
<tr>
<td
width="100%" class="unnamed1" height="247">
<div align="left">
<p align="center"> </p>
<p align="left"> <font size="-1" face="宋体">在程序设计中,经常遇到这种情况:计算机在处理大量数据时,用户等待处理结果,而此时的用户界面往往显得单调乏味。如果有一个能动态显示操作过程的进度条就好了,它既使用户界面具有动感,又增加了程序的趣味性。
笔者用VB 5.0编制应用系统时,分别用VB 5.0的进度条控件和滑动片控件,以及API函数BitBlt()三种方法实现操作过程动态显示。实现效果如图所示。现用两个应用实例说明如下。<br>
★应用实例一:用VB 5.0的进度条控件和滑动片控件分别实现操作过程动态显示。<br>
(1)插入进度条控件和滑动片控件的方法:在VB 5.0主菜单的“工程"项中,选择“部件(0)",在弹出的控件栏中,双击“Microsoft
Windows Common Control 5.0"项,按“确定"键返回。那么在窗体工具箱中就有了上述控件。<br>
(2)建立含有如下控件的窗体:<br>
控件 NAME CAPTION INTERVAL MAX FONT FORECOLOR<br>
窗体 FORM1 用VB 5.0实现操作过程动态显示<br>
进度条 PROGRESSBAR1 100<br>
滑动片 SLIDER1 100<br>
计时器 TIMER1 50 <br>
标签 LABEL1 宋体(小四)&H00FF0000&(蓝色) <br>
标签 LABEL2 宋体(小四)&H00FF0000&(蓝色)<br>
命令按钮 COMMAND1 退出 <br>
(3)输入计时器的程序代码:<br>
Private Sub Timer1_Timer()<br>
Static count As Integer<br>
count = count + 1<br>
Label1.Caption = Str$(count) +“%" '进度条显示百分比<br>
Label2.Caption = Str$(count) + “%" '滑动片显示百分比<br>
If count = 100 Then<br>
count = 0<br>
Else<br>
ProgressBar1.Value = count<br>
Slider1.Value = count<br>
End If<br>
End Sub<br>
(4)输入退出按钮的程序代码:<br>
Private Sub Command1_Click()<br>
End<br>
End Sub<br>
★应用实例二:用VB 5.0的API函数BitBlt()实现操作过程动态显示。<br>
BitBlt()函数格式:<br>
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<br>
该函数将点位图从由hSrcDC参数给出的源设备上拷贝到由hDestDC参数给出的目标设备上。xSrc,ySrc指出被移动的点位图在源设备上的原点坐标。x,y,nWidth,nHeight指出目标设备的原点坐标、宽度和高度。dwRop参数定义源位图和目标位图是如何结合的。参数值&HCC0020表示将源位图复制到目标位图上。<br>
(1)建立含有如下控件的窗体:<br>
控件 NAME CAPTION INTERVAL FORECOLOR BACKCOLOR
窗体 FORM1 用BitBlt()函数实现操作过程动态显示<br>
图片框 PICTURE2 &H00FFFFFF&(白色)&H00FF0000&(蓝色)<br>
图片框 PICTURE1 &H00000000&(黑色)&H00FFFFFF&(白色)<br>
计时器 TIMER1 10<br>
命令按钮COMMAND1 退 出 <br>
(2)定义窗体级函数和常量:<br>
Option Explicit<br>
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<br>
Const srccopy = &HCC0020<br>
(3)输入窗体装入的程序代码:<br>
Private Sub Form_Load()<br>
Picture2.Width = Picture1.Width<br>
Picture2.Height = Picture1.Height<br>
End Sub<br>
(4)输入计时器的程序代码: <br>
Private Sub Timer1_Timer()<br>
Static counts,r As Integer<br>
Static hh As Single<br>
Static percent As String<br>
hh! = counts / 100<br>
percent$ = Format(hh!, “0%")<br>
Picture1.Cls<br>
Picture2.Cls<br>
Picture1.CurrentX = (Picture1.Width - Picture1.TextHeight(percent$))
/ 2<br>
Picture2.CurrentX = Picture1.CurrentX<br>
Picture1.CurrentY = (Picture1.Height - Picture1.TextHeight(percent$))
/ 2<br>
Picture2.CurrentY = Picture1.CurrentY<br>
Picture1.Print percent$<br>
Picture2.Print percent$<br>
r% = BitBlt(Picture1.hDC, 0, 0, Picture2.Width * hh!, Picture2.Height,
Picture2.hDC, 0, 0, srccopy)<br>
counts = counts + 1<br>
If counts = 100 Then<br>
counts = 0<br>
End If<br>
End Sub<br>
(5)输入退出按钮的程序代码:<br>
Private Sub Command1_Click()<br>
End<br>
End Sub<br>
上述程序在同创P/200,中文Windows 95、Windows NT 4.0,Visual
Basic 5.0软硬件环境下运行通过。 (江苏省镇江港务局微机室 蔡可训212001)</font>
<p align="center"> </p>
</div>
</td>
</tr>
</center>
<tr>
<td width="100%" class="unnamed1">
<p align=right><a href="ba17.htm">(上一页)</a>---<a href="ba19.htm">(下一页)</a></p>
</td>
</tr>
<tr>
<td width="100%" class="unnamed1">
</div>
</td>
</tr>
<!--msnavigation--></tbody>
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -