答案 0 :(得分:0)
如果您的应用需要超过5秒的时间来绘制,那么它必须进行一些重载计算。大多数情况下,当窗户被移动或隐藏然后显示时,绘制的内容将不会改变。因此,您应该将计算的输出存储在缓存中,以便可以根据需要在闪存中重新绘制。如果某些内容发生变化,需要重做计算,则应在单独的线程中完成计算,并在完成后更新缓存。
缓存的性质取决于计算的性质。概念上,最简单的是内存位图,可以在需要时从中复制像素。实际上,只有在计算涉及单个像素的颜色并且您正在使用双缓冲方案时,这才适用。可能你可以存储类似几何图元(线条,正方形等)的东西并从中重绘。
这样做的好处是它不仅可以解决Win7问题,而且还可以使应用程序对用户更具响应性,因此使用起来更加愉快。
答案 1 :(得分:0)
在绘制循环中使用wxYield似乎可以解决问题。感谢您的投入。