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

我发现RectVisible,但是该函数确定rect的任何部分是否可见,我想知道整个rect是否可见。

有什么功能吗?

有帮助吗?

解决方案

首先使用 GetRandomRgn 。在此处详细了解。然后,因为该区域位于屏幕坐标中而使该区域偏移(我链接的文章有一个示例)。之后,使用 CreateRectRgn 并将“矩形区域”的部分与“系统区域”的部分组合:调用 CombineRgn 将矩形区域作为第一个区域,将系统区域作为第二个区域,并且RGN_DIFF作为fnCombineMode。如果结果是NULLREGION,则您的矩形是完全可见的-它没有被任何窗口完全或部分覆盖(无论是否处于顶层),或者它不完全或部分在屏幕外。

总而言之,您很可能以错误的方式来解决问题。如果您已告诉自己想要实现的目标,则可能会建议一种更简单的方法。

其他提示

在每个上使用 PtVisible 矩形的角。

PtVisible函数确定 指定点是否在 设备的裁剪区域 上下文。

您能否使用窗口和矩形的坐标进行简单比较。

检查矩形的左坐标在窗口左边界的右侧;右纵坐标位于窗口右边界的左侧;和顶部和底部相似?

唯一的皱纹可能是同时使用逻辑坐标和物理坐标,在这种情况下,您将需要执行转换。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top