vb滚动条如何显示进度

sdrczht 2010-01-18 11:01:28
各位老大,这又有问题了,郁闷好几天了。vb自带的滚动条没有显示当前进度文字的功能,想实现此功能,试过用文本框,但背景色及滚动效果不好控制,用标签又无法设置透明及无法移到顶层(即不能在滚动条的上方),请教各位,有什么办法实现此功能吗,如果能用API函数也行呀。只知道用SendMessage函数可以设置前、背色,但不知如何设置显示文字,请赐教。谢谢!!!
...全文
481 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdrczht 2010-01-22
  • 打赏
  • 举报
回复
我结帖了
sdrczht 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wallescai 的回复:]
那就通通用代码实现,
直接在窗体上或者PIXTURE控件上按照当前的进度先BITBLT再TEXTOUT,也没两三句话
[/Quote]
老大,我比较的菜,不明白你说的通用代码是什么意思,能解释得详细些吗?如果小天使没打扰你,你有时间的话。
熊孩子开学喽 2010-01-20
  • 打赏
  • 举报
回复
那就通通用代码实现,
直接在窗体上或者PIXTURE控件上按照当前的进度先BITBLT再TEXTOUT,也没两三句话
stayor 2010-01-19
  • 打赏
  • 举报
回复
关注一下。
sdrczht 2010-01-19
  • 打赏
  • 举报
回复
用API函数实现不了添加文字的功能吗,我只知道改变颜色的方法,再请哪位老大指点一下。
SYSSZ 2010-01-18
  • 打赏
  • 举报
回复
给你一个用Picture做进度条的例子:
Private Sub Form_Load()
Label1.BackStyle = 0
Label1.BorderStyle = 0
Label1.ForeColor = vbWhite
Label1.BackColor = Picture1.BackColor
Timer1.Interval = 100
Picture1.DrawWidth = 10
End Sub

Private Sub ProgressBar1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

Private Sub Timer1_Timer()
Static i As Integer

Picture1.AutoRedraw = True
Picture1.Scale (0, 0)-(100, 10)
Picture1.Line (i, 0)-(i, 10), vbBlue
i = i + 1
If i > 99 Then Timer1.Enabled = False
Label1.Caption = i & "%"

End Sub
SYSSZ 2010-01-18
  • 打赏
  • 举报
回复
用Picture控件代替 ProgressBar
liguicd 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 syssz 的回复:]
我记得枕善居上有第三方控件可下载。
[/Quote]
U11DProgressBar

CSDN图片不让传也就罢了,现在连资源都关闭了...
哪天把发帖功能也关闭好了,省事
guyehanxinlei 2010-01-18
  • 打赏
  • 举报
回复
ComponentOne中有这样一个控件,楼主可以找一下.
SYSSZ 2010-01-18
  • 打赏
  • 举报
回复
我记得枕善居上有第三方控件可下载。
sdrczht 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 syssz 的回复:]
给你一个用Picture做进度条的例子:
VB codePrivateSub Form_Load()
Label1.BackStyle=0
Label1.BorderStyle=0
Label1.ForeColor= vbWhite
Label1.BackColor= Picture1.BackColor
Timer1.Interval=100
Picture1.DrawWidth=10End SubPrivateSub ProgressBar1_MouseDown(ButtonAsInteger, ShiftAsInteger, xAsSingle, yAsSingle)PrivateSub Timer1_Timer()Static iAsInteger

Picture1.AutoRedraw=True
Picture1.Scale (0,0)-(100,10)
Picture1.Line (i,0)-(i,10), vbBlue
i= i+1If i>99Then Timer1.Enabled=False
Label1.Caption= i&"%"End Sub
[/Quote]
谢谢老张,我刚试过了,确实很好用,但对于滚动条来说,再没有什么办法来实现了吗

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧