winapi - 确定矩形在窗口内是否可见

标签 winapi window visible rect

我想确定窗口内的矩形是否完全可见。

我找到了 RectVisible,但该函数确定矩形的任何部分是否可见,我想知道整个矩形是否可见。

有这个功能吗?

最佳答案

首先使用 GetRandomRgn 将系统剪切区域(窗口的可见区域)变成一个区域。阅读有关“系统区域”的更多信息 here 。然后,偏移该区域,因为它位于屏幕坐标中(我链接的文章有一个示例)。之后,使用 CreateRectRgn 从矩形创建一个区域。并将“矩形区域”的部分与不属于“系统区域”的部分组合起来:即调用 CombineRgn传递矩形区域作为第一个区域,系统区域作为第二个区域,以及 RGN_DIFF 作为 fnCombineMode。如果结果是 NULLREGION ,那么您的矩形是完全可见的 - 它没有完全或部分被任何窗口(顶层或非顶层)覆盖,或者它没有完全或部分离开屏幕。

总而言之,您很可能以错误的方式处理问题。如果您已经讲述了自己一直在努力实现的目标,那么某人可能会建议一种更简单的方法。

关于winapi - 确定矩形在窗口内是否可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4071810/

相关文章:

python-2.7 - 如何在垂直 Gtk.Box 内水平居中 Gtk.Grid?

javascript - Dimple JS 交互式图例 - 在加载时隐藏一些图例项目

Android:安装一天后如何显示按钮?

c++ - 更改 ListView 和 TreeView 颜色的最简单方法

当应用程序启动时从隐藏状态显示时,C# WPF 窗口未位于中心

jquery - 使用 css 媒体查询触发 jquery

javascript - css/javascript 的可见设置

c++ - 通过 Win32 API 更改文件夹安全权限

c++ - 将阴影添加到 ListView(图标模式)?

c - system() 未按预期使用 %ERRORLEVEL%