我使用纯 Win32 为 Windows 开发了一个屏幕捕获应用程序 - 没有 MFC 或 ATL。
为此,我使用了两个顶级分层窗口 - 一个(完全透明)捕获鼠标事件,如拖动,另一个(半透明)用作高亮矩形。当用户选择要抓取的屏幕区域时,我使用 SetWindowPos() 来更改半透明高亮窗口的大小和位置。
这在物理设备上运行良好,但我发现在 RDP 上的虚拟机(Windows 7)上,我的半透明窗口根本不显示。我仍然可以捕获屏幕,但不能在捕获过程中向用户提供视觉反馈。
我尝试将我的 RDP 设置更改为使用 32bpp,但这无济于事。
我在用:
COLORRED highlightColor = RGB(0, 0, 255);
SetLayeredWindowAttributes(hWnd, highlightColor, 255*0.6, LWA_ALPHA);
在我的突出显示窗口的 WM_CREATE 事件中。
有人知道如何在 VM 上的 RDP 上显示半透明分层窗口吗?