如何确定窗口客户区被覆盖了?

如何确定窗口客户区被覆盖了?

作者:BlogUpdater |  时间:2020-03-15 |  浏览:224 |  评论已关闭 条评论

确定窗口客户区是否被覆盖

如果你根据窗口的可见性来控制窗口的绘制,则之前的一篇文章中介绍的方法十分管用,因为你是借助于绘制系统本身里帮你干了这些脏活累活。

为了在绘制循环之外获取这一信息,可以使用GetDC和GetClipBox这两个API函数。
从GetDC函数获取到的HDC已经是被剪切到可见区域之后的。然后,你可以借助于GetClipBox这个函数来从中获取窗口的状态信息。

下面是我们的例子代码,我们在它的基础上添加了一些代码,来演示上面的所说的理论。

在上面的代码中,每隔一秒钟,窗口的标题栏会显示客户区的可见状态。
轮询的方式相对于使用系统内置的实现方法来说会更加昂贵,因此,建议优先使用绘制系统方法。

关于第9章节
为什么第9章节这么晚才出来的原因是:它太长了。我已经将它划分到第9章节到第12章节,还有一个可选的第13章节,这样会让这些片段更加容易管理一点。
第9章节已经完成了,但是我希望延迟发表它,直到我完成第12章节为止,因为后面的章节可能会让我需要重写第9章节。

总结
这是我对写作过程的一种自我中心的、相当枯燥的一种感受。

评论已关闭。