【问题标题】:How can I determine if a RECT area inside of my window is covered by other windows (occluded) using windows APIs?如何使用 Windows API 确定我的窗口内的 RECT 区域是否被其他窗口(被遮挡)覆盖?
【发布时间】:2021-11-01 03:05:11
【问题描述】:

如何确定我的窗口内的 RECT 区域是否被其他窗口覆盖(被遮挡)。我的意思是,用户是否可以看到这个 RECT 区域?

我找不到这个问题的正确答案。事实上,我应该定义一个带有这样签名的函数

 bool isWindowPartVisible(HWND handle, RECT rect)

在这个函数中,我只能使用 Windows API 函数。

【问题讨论】:

  • 您试图确定的上下文是什么(是在 WM_PAINT 消息期间)?为什么需要确定这一点? (可能有更好的方法来实现这一点,或者可能没有必要。)Edit 包含其他详细信息的问题。 (即使您确定某个部分是否可见,用户也可以移动、展开或进行其他 UI 更改,从而改变您的窗口的可见部分。)

标签: c++ windows api visual-c++ windows-api-code-pack


【解决方案1】:

一种方法是使用WindowFromPoint()rect 中获得足够数量的点,然后检查它是否是您的窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 2016-03-05
    • 2012-08-13
    相关资源
    最近更新 更多