我们有一个相当复杂的GUI,所以当调整某些窗口的大小时,他们的Redraw()设置为false,直到操作完成。这样做的问题是,如果选中操作系统“拖动时显示窗口内容”设置,当减小窗口大小时,窗口后面的窗口不会重新绘制。这意味着我必须自己强制重绘,以便删除调整大小的窗口的剩余部分。获得未被发现的区域的尺寸我没有问题。我正在寻找的是使该区域内的所有窗口重新绘制其部分的最佳方法。
不是GUI程序员,我可以遍历未覆盖的区域并列出其中的窗口。然后,我可以让他们每个人重新绘制它的部分。但我很确定必须有更好的方法来做到这一点......
值得一提的是该应用程序是用PowerBuilder编写的。这意味着我可以调用我想要的任何Win32函数,但对GUI行为和消息处理的控制有限。如果有更好的方法来阻止窗口的内容调整大小可见,或者有一种方法可以让非重绘窗口自行清理,我很乐意听到它(只是考虑到上述限制)。
答案 0 :(得分:0)
我很好奇你在使用什么版本的PowerBuilder?我一直在调整大小,从不遇到像你所描述的问题。
也许您可以在PowerBuilder环境中详细说明为什么需要将重绘设置为false。
希望我能提供帮助。