首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows7,wxWidgets中的连续重绘事件

Windows7,wxWidgets中的连续重绘事件
EN

Stack Overflow用户
提问于 2011-08-23 12:06:50
回答 2查看 452关注 0票数 0

在Windows-7上,我的应用程序收到来自windows的连续重绘事件。我正在使用wxWidgets。

这个问题并没有发生:

  • On winXP,
  • On Linux,

在(2010)的调试模式中

这个问题只发生在Widows7时,应用程序要重绘很多,而且要花费超过5秒的时间来绘制。如果我关掉一些需要重绘的东西,而且不需要花那么长的时间,那就没问题了。

我在paint事件处理程序中调用wxPaintDC dc(this);,所以这不是问题。

我也试过DwmFlush。我将其放入重绘事件处理程序和绘图代码中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-29 14:35:26

在抽签循环中使用wxYield似乎可以做到这一点。谢谢你的意见。

票数 0
EN

Stack Overflow用户

发布于 2011-08-24 12:03:19

如果你的应用程序需要超过5秒来绘制,那么它一定是在做一些繁重的计算。大多数情况下,例如,当窗口被移动或隐藏时,绘制的内容将不会改变。因此,您应该将计算中的输出存储在缓存中,以便根据需要在闪存中重新绘制。如果发生了一些变化,因此需要重新进行计算,则计算应该在一个单独的线程中完成,并在完成时更新缓存。

缓存的性质取决于计算的性质。在概念上,最简单的是内存位图,在需要时可以从其中复制像素。实际上,只有当计算涉及到单个像素的颜色,并且您使用的是双缓冲方案时,这才是合适的。也许你可以存储一些像几何学原语(线,正方形等),并从这些重新绘制。

这样做的好处是,它不仅解决了Win7问题,而且还将使应用程序更响应用户,因此更容易使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7160779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档