VB中使用API BitBlt()如何能够使得图象逐步显示?

easydone 2000-04-27 08:25:00
刚刚接触VB,在我编写屏保的时候遇到这样一个问题:
想用API BitBlt()实现图象显示的特技效果,例如以下代码:
For i% = 0 To Picture1.Height
BitBlt PictureBox2.hDC,0,i%,PictureBox1.Width, 1, PictureBox1.hDC, 0, i%, SRCCOPY
Sleep 20
DoEvents
PictureBox2.Visible = True
Next i%
但图象并不能逐行显示,而是整个图象全部扫描之后,整个显示出来,达不到特技显示的效果。
如何能够让BitBlt扫描一行就显示一行,请大虾们帮菜鸟一把!
Thanks a lot
...全文
260 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
雨人吧 2000-04-27
  • 打赏
  • 举报
回复
用Timer控件替代for...next
syz 2000-04-27
  • 打赏
  • 举报
回复
WIN GDI 借口是一个商用的简单接口。他做的特效真的不能恭维。楼上的说的也是,
但我想WIN GDI 的毛病也就出来了吧?闪烁!推荐用DIRECT 70 ,听说他支持VB 。
929 2000-04-27
  • 打赏
  • 举报
回复
我想可能因为是没刷新的原因,我在DELPHI中做了类似的程序,刷新后效果就出来了。
For i% = 0 To Picture1.Height
BitBlt PictureBox2.hDC,0,i%,PictureBox1.Width, 1, PictureBox1.hDC, 0, i%, SRCCOPY
Sleep 20
DoEvents
PictureBox2.Refresh
‘PictureBox2.Visible = True//
Next i%
929 2000-04-27
  • 打赏
  • 举报
回复
For i% = 0 To Picture1.Height
BitBlt PictureBox2.hDC,0,i%,PictureBox1.Width, 1, PictureBox1.hDC, 0, i%, SRCCOPY
Sleep 20
‘PictureBox2.Visible = True//把这句改成一条刷新语句
PictureBox2.refresh
DoEvents
Next i%

1,486

社区成员

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

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