【发布时间】:2010-11-28 00:56:51
【问题描述】:
我在图片框上有一个透明矩形,如果我单击下一步,下一个图像会出现并绘制透明矩形。问题是闪烁,从一个图像移动到另一个图像时,透明矩形闪烁。请帮助我如何摆脱这个问题。我想消除闪烁,请帮助。
谢谢
【问题讨论】:
标签: c# c++ windows-mobile winapi mobile
我在图片框上有一个透明矩形,如果我单击下一步,下一个图像会出现并绘制透明矩形。问题是闪烁,从一个图像移动到另一个图像时,透明矩形闪烁。请帮助我如何摆脱这个问题。我想消除闪烁,请帮助。
谢谢
【问题讨论】:
标签: c# c++ windows-mobile winapi mobile
你是如何实现它的?我遇到了类似的问题,并通过从 Control 继承、覆盖 OnPaint 以绘制我的图像和透明背景等以及覆盖 OnPaintBackground 并且什么都不做来实现我自己的图片框。 (OnPaintBackground 的默认行为是绘制控件的背景,如果是控制整个控件的绘制,则不需要这样做)
如果您的绘制操作需要时间,您还可以在 OnPaint 中实现双缓冲以减少撕裂。
【讨论】:
做双缓冲。基本上创建了一个将显示的缓存图像。然后,当您需要重新绘制表面时,请使用另一个图像,一旦您完成绘制,将该图像与缓存的图像交换。这样你就不会有任何闪烁。
我可以给你写一个例子,但我不知道你是在编写 c++ 还是 C#,因为你已经将两者都添加为标签。这是C#中手动双缓冲的示例http://www.developerfusion.com/code/4668/double-buffering-in-net/
【讨论】: