vb关于bitblt的问题,请教高手

使用bitblt把内存中的图片复制到一个正在运行的第三方程序窗口。发现这个程序不停的重绘(刷新)窗体。用了一个时间控件重复贴图,但是由于刷新速度很快,导致图片闪烁,请问如... 使用bitblt把内存中的图片复制到一个正在运行的第三方程序窗口。发现这个程序不停的重绘(刷新)窗体。用了一个时间控件重复贴图,但是由于刷新速度很快,导致图片闪烁,请问如何解决这种问题?不用bitblt也行。请给一个可行的解决方案。
首先谢谢 bater2000的回答,我遇到的闪烁不是你说的原因,而且我本身就是从内存bitblt到第三方程序窗口的,只是因为第三方程序窗体刷新太快,刚一贴图,立刻就没了,我是解决不了这个问题。
展开
 我来答
bater2000
2010-03-05 · TA获得超过1486个赞
知道小有建树答主
回答量:803
采纳率:0%
帮助的人:1091万
展开全部
如果可以修改第三方程序代码就可以简单解决了,只要把被绘制窗口的属性.AutoRedraw = True就可以了。

闪烁的原因是重绘造成的,解决重绘闪烁最根本的方法是用bitblt在内存里开辟一块与绘制区域一样尺寸的图,然后在内存里把绘制步骤依此完成后一次性的把内存图像bitblt到可见的窗口上即可消除闪烁。过去Bitblt写的二维游戏都是用这种方法。
ljl88900
2010-03-08 · TA获得超过2661个赞
知道大有可为答主
回答量:2197
采纳率:100%
帮助的人:2682万
展开全部
建议采用间接方法处理:
在你的程序内加入Picture控件(Autoredraw=True),然后用setparent把此控件置入第三方窗口中。这样,你使用bitblt把内存中的图片先画到此控件中即可以了,而不会发生你所说的情况。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果建翼
2010-03-06 · TA获得超过7928个赞
知道大有可为答主
回答量:1684
采纳率:0%
帮助的人:2468万
展开全部
试试拦截那个程序的WM_PAINT消息然后再对其BitBlt。不过VB要拦截消息不好办就是了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式