在PICTURE控件中快速滚动图片?

wenli 2000-08-20 11:26:00
在PICTURE控件中快速滚动图片?
我现在的方法是:
for i=1 to picsource.scaleheight
BitBlt(picShow.hDC, 0, 1, picSource.ScaleWidth, picSource.ScaleHeight - 1, _
picSource.hDC, 0, 0, vbSrcCopy)
next for
但是资源占用太历害,有没有更快更好的方法,速度优先。
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sixfooter 2000-08-27
  • 打赏
  • 举报
回复
我有个好招,在picture控件中放一个image控件,图片放在image控件上
滚动image不就行了.
shines77 2000-08-21
  • 打赏
  • 举报
回复
也不对啊,这个滚动出来的效果是什么啊?faint ~~~~
shines77 2000-08-21
  • 打赏
  • 举报
回复
你的程序是不是应该是这样的:

前提是: picSource, picShow的AutoRedraw属性为Ture。

Const Jump=5
For i=1 to picSource.ScaleHeight Step Jump
BitBlt picShow.hDC, 0, i, picSource.ScaleWidth, picSource.ScaleHeight - i, _
picSource.hDC, 0, 0, vbSrcCopy
picShow.Refresh
Next

Jump由你自己取,8, 10都可以,具体看效果。
shines77 2000-08-21
  • 打赏
  • 举报
回复
for i=1 to picsource.scaleheight
BitBlt(picShow.hDC, 0, 1, picSource.ScaleWidth, picSource.ScaleHeight - 1, _
picSource.hDC, 0, 0, vbSrcCopy)
next for
???
你的循环变量i去哪了,干吗要循环,是不是两个"1"就是"i"啊,而且你好像还忘了刷新picShow了(BitBlt后picShow.Refresh),还有picShow和picSource的AutoRedraw是不是Ture啊,不说清楚不利于解决问题啊,说清楚点吗,你倒好,可苦了我们啊?

可能你是懂了,可是我们不懂你懂不懂啊,另外,干吗要1个像素1个像素的移动呢?是DirectX都受不了啊,干吗不用Jump+5, Jump +10啊,总是Jump越大速度就越快,当然也不能太快:)

资源占用太厉害,你怎么知道,你用软件测过了??两副Picture和BitBlt是耗不了多少DC资源的。至少没有你说的那么严重。(以上意见仅供参考)
如果想快,还是用DirectX吧:)
opkj 2000-08-20
  • 打赏
  • 举报
回复
scallDC

1,451

社区成员

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

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