【发布时间】:2015-09-23 08:16:19
【问题描述】:
背景
我们在 XenDesktop 模式下运行我们的应用程序,我们的窗口显示了一些实时信息。但是,如果在 XenDekstop 中也启动了其他应用程序并且该应用程序与我们的窗口重叠,那么我们希望停止渲染。一旦它移出我们的窗口,我们就想再次开始渲染。不幸的是,Citrix 目前不支持此类通知。
问题
我们如何检测应用程序窗口的一部分或全部何时被其他窗口重叠,以及何时不再是这种情况?
我在谷歌搜索时发现了 WindowFromPoint 系列函数,但是,这对我的目的不实用,因为我需要不断轮询我的窗口覆盖的所有坐标。
加分:首先,如果我能检测到何时发生这种重叠就足够了。但是,如果我能准确地检测到我的窗口的哪些区域被/被覆盖,那就太好了。
【问题讨论】:
-
在 WM_ACTIVATE 之外没有任何通知。手动实现 WS_EX_TOPMOST 样式不是很实用。要求你的窗户永远不能被遮盖是不太实际的。
-
为什么需要这个?你想达到什么目的?
-
@MichaelWalz,我们在 XenDesktop 模式下运行我们的应用程序,我们的窗口显示了一些实时信息。但是,如果在 XenDekstop 中也启动了其他应用程序并且该应用程序与我们的窗口重叠,那么我们希望停止渲染。一旦它移出我们的窗口,我们就想再次开始渲染。遗憾的是,Citrix 目前不支持此类通知。
-
@IshanRastogi 您应该将此信息放在您的问题中。
标签: c++ winapi citrix xendesktop