使用VB6写一个自定义的进度信息框窗口

一、起因说明

之前有些项目是用Access完成的,当时为了给用户显示一些进度信息,自制了一个进度信息窗体,类似下图所示:

随着项目不断变迁,需要将进度信息按阶段及子进度进行显示,并且出于代码封装的需求,需要将其封装到一个dll文件中。最终完成的效果如下图:

调用该进度信息框的代码类似如下所示:

 1 Private Sub cmdCommand1_Click()
 2     Dim pb As New CProgressBar
 3     pb.AddStage "第一步", 10000
 4     pb.AddStage "第二步", 10000
 5     pb.AddStage "第三步", 10000
 6     pb.AddStage "第四步", 10000
 7     Do Until pb.IsComplated
 8         pb.StepOne
 9     Loop
10 End Sub

二、设计思路

制作这个Dll,我使用的是VB6,因为考虑到可能在后续的Access项目或者VB6项目中使用,所以没有用VB.net或者Delphi来开发。完成这个项目我建立了1个解决方案,包括2个项目文件,一个是dll项目工程文件,其二是测试工程。

如上图1、2、3包含在dll项目工程中,4在测试工程中,注意要将测试工程设置为启动工程。

1、FProgressBar:进度条窗体模块,主要是界面元素设计,仅提供与界面相关的功能,如刷新显示内容的方法与函数,借鉴MVC概念里的View;

2、CLayoutHelper:窗体布局辅助器,主要为无边框窗体添加外边框、移动控制功能、添加关闭按钮等布局特性;

3、CProgressBar:进度条类模块,该类模块可以被测试工程访问,注意需要将其设置成MultiUse,该模块提供了所有进度条逻辑功能,借鉴MVC概念里的Control的概念;

未完待续

时间: 2024-12-09 22:20:33

使用VB6写一个自定义的进度信息框窗口的相关文章

写一个自定义进度颜色和圆形转动的ProgressBar(详细介绍)

先上图: 我们得自定义ProgressBar的样式 <span style="white-space:pre"> </span><style name="self_define_ProgressBar" parent="@android:style/Widget.ProgressBar.Horizontal"> //继承了android横向的ProgressBar的样式 <item name="

android如何写一个自定义的dialog可以在Title的位置弹出来

先上效果图: Title的Layout为: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/title_h

如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server

我们在上面对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了详细介绍(<聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer>),为了让读者朋友们对管道中的Server具有更加深刻的认识,接下来我们采用实例演示的形式创建一个自定义的Server.这个自定义的Server直接利用HttpListener来完成针对请求的监听.接收和响应,我们将其命名为HttpListenerServer.在正式介绍HttpListenerServ

用C语言写一个链表储存学生信息

题目 已知学生基本信息由学号(长整型).姓名(字符数组).性别(字符型).年龄(整型)组成.编程实现:建立一个结点按学号顺序存储学生信息的单向链表,并实现依据学号对链表的添加.修改.删除和检索功能:添加新结点后,应继续保持结点按学号顺序的链接方式.分别定义函数实现链表的初始化.链表的打印输出.以及在链表中添加.修改.删除和检索节点的功能. 基本思路 建立单向链表,存储学生数据,用不同函数实现上述功能,在主函数中调用函数进行操作. 代码实现 定义结构体类型存储信息 struct STUDENT_N

如何写一个自定义的js文件

自定义一个Utils.js文件,在其中写js代码即可.如: (function(w){ function Utils(){} Utils.prototype.getChilds = function(_selector){}; Utils.prototype.getNextSibling = function(_selector){}; Utils.prototype.getPrevSibling = function(_selector){}; Utils.prototype.validate

在Linux下写一个简单的进度条,用make指令进行编译。

首先建立一个新的文件,touch progress_bar.c 执行该vim progress_bar.c命令,写进度条的程序.写进一个进度条程序: #include<stdio.h> #include<unistd.h> #include<string.h> void progress() { int i = 0; char bar[102]; memset(bar,0,102*sizeof(char)); const char* lable="|/-\\&

Android一个自定义的进度环:ProgressChart

源代码及可执行文件下载地址:http://files.cnblogs.com/rainboy2010/ProgressChart.zip 因项目需要,自己尝试定义了一个进度环,用于显示进度,实现效果如下: 主要代码如下: public class ProgressChart extends View { private Context context; //圆环背景画笔 private Paint paintBg; //圆环进度画笔 private Paint paintProgress; //

用多态写一个租赁公司的出租信息

父类:MotoVehicle public abstract class MotoVehicle { String no; String brand; String color; String mileage; int days; public abstract float CalcRent(int days); } 子类1:Car public final class Car extends MotoVehicle { String type; @Override public float C

Android分分钟教你写一个个性化的加载框

闲来无事写的一个加载框,实现效果如下: 实现思路: 其实看样子就感觉很简单的...在自定义Relativelayout里用onDraw绘制就行了. 复习了一下以前学的知识. 代码实现: package com.whale.nangua.toquan.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.