赛迪网 > IT技术 编程语言 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

创建setup类型的进度条

发布时间:2006.08.16 03:12     来源:plwww    作者:

新建一个工程,增加一个picture box和command button

加入下面的代码:
Dim tenth As Long
'条件编译
#If Win32 Then
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
#Else
Private Declare Function BitBlt Lib "GDI" (ByVal hDestDC As _
Integer, ByVal x As Integer, ByVal y As Integer, ByVal nWidth _
As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, _
ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As _
Long) As Integer
#End If

Sub UpdateStatus(FileBytes As Long)
'--------------------------------------------------------------------
' 更新Picture1 status bar
'--------------------------------------------------------------------
    Static progress As Long
    Dim r As Long
    Const SRCCOPY = &HCC0020
    Dim Txt$
    progress = progress + FileBytes
    If progress > Picture1.ScaleWidth Then
        progress = Picture1.ScaleWidth
    End If
    Txt$ = Format$(CLng((progress / Picture1.ScaleWidth) * 100)) + "%"
    Picture1.Cls
    Picture1.CurrentX = _
    (Picture1.ScaleWidth - Picture1.TextWidth(Txt$)) \ 2
    Picture1.CurrentY = _
    (Picture1.ScaleHeight - Picture1.TextHeight(Txt$)) \ 2
    Picture1.Print Txt$
    Picture1.Line (0, 0)-(progress, Picture1.ScaleHeight), _
    Picture1.ForeColor, BF
    r = BitBlt(Picture1.hDC, 0, 0, Picture1.ScaleWidth, _
        Picture1.ScaleHeight, Picture1.hDC, 0, 0, SRCCOPY)
End Sub

Private Sub Command1_Click()
    Picture1.ScaleWidth = 109
    tenth = 10
    For i = 1 To 11
        Call UpdateStatus(tenth)
        x = Timer
        While Timer < x + 0.75
            DoEvents
        Wend
    Next
End Sub

Private Sub Form_Load()
    Picture1.FontBold = True
    Picture1.AutoRedraw = True
    Picture1.BackColor = vbWhite
    Picture1.DrawMode = 10
    Picture1.FillStyle = 0
    Picture1.ForeColor = vbBlue
End Sub

F5 运行, 点击 Command1就可以看到效果。


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 用Shell语句调出控制面板 (12-08) · 用API函数Mcisendstring直接播放背景音乐 (05-27)
· 检测磁盘类型的信息 (09-04) · 从远程NT服务器中读取日期和时间 (01-27)
· 介绍三种功能强大的数据库表格控件 (06-07) · 在VB应用程序中使用INI文件的一点体会 (08-05)
· VB中API的声明特殊问题 (07-19) · SQL语言基本教程(一) (05-01)
· Windows未公开函数揭密——之三 (03-07) · 通过开发VB插件来扩展VB应用 (08-01)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管