题
我想确定窗口内的矩形是否完全可见。
我发现RectVisible,但是该函数确定rect的任何部分是否可见,我想知道整个rect是否可见。
有什么功能吗?
解决方案
首先使用 GetRandomRgn
。在此处详细了解。然后,因为该区域位于屏幕坐标中而使该区域偏移(我链接的文章有一个示例)。之后,使用 CreateRectRgn
并将“矩形区域”的部分与“系统区域”的部分组合:调用 CombineRgn
将矩形区域作为第一个区域,将系统区域作为第二个区域,并且RGN_DIFF
作为fnCombineMode
。如果结果是NULLREGION
,则您的矩形是完全可见的-它没有被任何窗口完全或部分覆盖(无论是否处于顶层),或者它不完全或部分在屏幕外。
总而言之,您很可能以错误的方式来解决问题。如果您已告诉自己想要实现的目标,则可能会建议一种更简单的方法。
其他提示
在每个上使用 PtVisible 矩形的角。
PtVisible函数确定 指定点是否在 设备的裁剪区域 上下文。
您能否使用窗口和矩形的坐标进行简单比较。
检查矩形的左坐标在窗口左边界的右侧;右纵坐标位于窗口右边界的左侧;和顶部和底部相似?
唯一的皱纹可能是同时使用逻辑坐标和物理坐标,在这种情况下,您将需要执行转换。
不隶属于 StackOverflow