【发布时间】:2014-01-24 08:45:35
【问题描述】:
当我同时移动窗口和调整大小时,我的窗口似乎在闪烁。这通常发生在从窗口左侧调整大小时。
为什么会出现这种闪烁?换句话说,当你重新定位一个窗口时,操作系统在做什么?
注意:从右侧调整大小时我没有遇到闪烁,这意味着窗口不一定会移动其原点 X 和 Y。
【问题讨论】:
-
原因是因为您要移动整个窗口。 Windows 现在将重绘该特定位置的所有内容。从右侧缩小只会使其重新绘制边界。客户区不需要重新绘制,因为它只是被裁剪了。从右侧拉伸要求现在将绘制任何未绘制的控件以及客户区域。移动窗口需要重新绘制每个组件和客户区及其边框。
-
@CantChooseUsernames 我正在尝试将您所说的内容与
SWP_NOCOPYBITS联系起来。但我认为它只是将这些位复制过来。 -
您使用的是什么操作系统?启用主题(即默认)的 Windows XP 不可避免地会出现闪烁。除了 Vista 之外的所有其他版本的 Windows 都可以。我没试过 Vista。