代码之家  ›  专栏  ›  技术社区  ›  bentsai

当窗口的某个部分被“始终在上”窗口遮挡时,如何阻止自定义工具提示代码绘制?

  •  2
  • bentsai  · 技术社区  · 16 年前

    我们实现了一些自定义工具提示绘图代码 Tick 计时器事件。每当此事件触发时,我们检查以确保控件可见。( this.Visible )是前景窗口( GetForegroundWindow() )

    我们遇到的问题涉及“总是在最上面”窗口,如任务管理器或流程资源管理器(启用“总是在最上面”选项时)。因为这些窗口总是在上面,所以有时我们的应用程序被这样的窗口遮挡/覆盖,但是我们的工具提示仍然会弹出并绘制在上面的窗口上。

    我试过用 Form.TopMost 属性,但这是不可接受的,因为如果任何地方都有“始终在顶部”窗口,则不会出现工具提示。在这种情况下,我们的应用程序甚至是活动的,所以我们应该显示工具提示。

    如何检测/确定窗体上鼠标悬停的区域是否有“始终在上”窗口?我想阻止工具提示显示“通过”窗口。

    推荐文章