说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用VB实现动态显示操作进度程序

HTML文档下载 WORD文档下载 PDF文档下载
用VB实现动态显示操作进度程序

江苏镇江港务局微机室 蔡可训


凡是用过Windows的用户都非常熟悉Windows安装程序所提供的界面,即随着安装盘文件拷贝到硬盘,有一蓝色的水平尺随着百分数的增加而不
断增加,当百分数达到50%时,原为白底黑字显示百分比,变成蓝底白字显示,水平尺动态显示工作进度的动感非常强。

如何在自己的应用程序加入显示动态操作进度的功能,笔者在VB编程工作中总结出两种方法。

1.方法一:

建立两个图片框,这两个图片框的大小和位置都相同。将一个设置为可见,白色背景和黑色前景。另一个设置为不可见,蓝色背景和白色前景,
AUTODRAW为TURE。将不可见图片框中的蓝色位图通过Windows API中的BITBLT函数拷贝到可见的图片框中。两个图片框中输出百分数的位置
相同。

①在目标文件列表(OBJECT)中选择GENERAL,在过程列表(PROC)中选择DECLARATIONS(声明),进入窗体级代码定义窗口输入:

DECLARE FUNCTION BITBLT% LIB "GDI"(BYVAL DESTDC%,BYVAL X%,BYVAL Y%,
BYVAL W %BYVAL H%,BYVAL SRCDC%,BYVAL XSRC%,BYVAL YSRC%,BYVAL RASTEROP&)

CONST SRCCOPY = &HCC0020

②建立一个计时器,设置每隔五毫秒使水平尺增加1%。

输入计时器的程序代码:

SUB TIMER1_TIMER ()

STATIC COUNT AS INTEGER

COUNTS!=COUNT/100

PERCENT$ = FORMAT(COUNTS!,"0%")

P1.PRINT PERCENT$ `显示百分数.P1是可见框的控制名称.

P2.PRINT PERCENT$ `显示百分数.P2是不可见框的控制名称.

R% = BITBLT(P1.HDC,0,0,P2.WIDTH*COUNTS!,P2.HEIGHT,P2.HDC,0,0,SRCCOPY)

COUNT = COUNT +

IF COUNT = 100 THEN

COUNT = 0

`计数清零

END IF

END SUB

这种方法实现起来太繁琐且运行效果表现为水平尺的动感强,但缺乏立体美感,所以笔者只提供了程序代码的主要部分,下面将着重介绍方法二。

2.方法二:

充分利用三维控件的属性,制作一个三维立体界面。

①先介绍3D控件中的特殊属性(本文用到的)含义:

SHADOWCOLOR 用于控制阴影的颜色,它有1-黑色,0-浅灰色两种选项,本文选0。

BEVELOUTER

用于控制控件倾斜框外边形状。它有0-没有,1-凹入,2-凸出三项。

BEVELINNER

用于控制控件倾斜框内边形状。选项同BEVELOUTER。

BEVELWIDTH

用于控制控件倾斜框的宽度。

BORDERWIDTH 用于控制控件边框的宽度。

FLOODTYPE

用于控制在面板内填充的方式,0-没有,1-从左到右,2-从右到左,

3-从上到下,4-从下到上,本文选1。

FLOODCOLOR

指定填充时的填充颜色。

FLOODSHOWPCT 控制是否在填充时显示完成的百分比。有TRUE/FALSE两种选项,本文设置为TRUE。

②建立含有如下控件的窗体:

控件 NAME CAPTION BEVELINNER BEVELOUTER BEVELWIDTH BORDERWIDTH

FLOODCOLOR

窗体 FORM1 动态显示操作演示 `程序窗口

命令按钮 COMMAND1 退出 `程序结束

计时器 TIMER1 (INTERVAL为5)

面板 PANEL3D1 空 1 1 1 4 蓝色

由于显示超宽,部分属性的设置见2①属性说明

③利用计时器,每隔5毫秒就使水平尺增加1%。当达到50%时,百分数显示由原来的白底黑字变成蓝底白字;当达到100%时,将百分数清零再从头显
示水平尺。

(1)输入计时器的代码:

SUB TIME1_TIMER()

STATIC COUNT AS INTEGER

PANEL3D1.FORECOLOR = &H0

`设置百分数为黑字.

PANEL3D1.FLOODPERCENT = COUNT `显示百分数.

COUNT = COUT +

IF COUNT >=50 THEN

PANEL3D1.FORECOLOR = &HFFFFFF `设置百分数为白字.

IF COUNT = 100 THEN

COUNT = 0 `计数清零.

END IF

END IF

END SUB

(2)输入退出按钮的代码:

SUB COMMAND1_CLICK()

END

END SUB

以上程序在AST PIII+4/66D上,VISUAL BASIC 3.0 FOR WINDOWS环境中运行通过,用户可将本程序适当修改加入到自己的应用程序中,增加程序界面的立体美感。

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘