我知道如何使用分层 Windows 使我自己的应用程序透明,但我想使不同的应用程序透明(例如记事本)。我写了这样的代码,但它不适用于除我的应用程序主窗口之外的其他窗口:
SetWindowLongPtr(WindowFromPoint(p), GWL_EXSTYLE,
GetWindowLongPtr(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
SetLayeredWindowAttributes(WindowFromPoint(p), 0, (255 * 50) / 100, LWA_ALPHA);
其中 p 是屏幕上的一个点(例如我用鼠标选择的窗口)
如果有一种方法可以直接从 Windows 7 执行此操作(不一定是程序化的),我也很感兴趣。我认为必须有一种方法可以做到这一点,因为每个应用程序都在它自己的表面上呈现,并且 DWM 将它们合成到最终图像中。