windows – 使其他应用程序窗口在Delphi中是半透明的
发布时间:2021-02-06 02:56:18 所属栏目:系统 来源:网络整理
导读:美好的一天 我在网上搜索任何方向,如果这是可能的,但无济于事.我需要编写一个应用程序,允许我选择另一个应用程序,并通过这样做使选定的应用程序半透明和在顶部(如鬼图像叠加). 用Delphi可以实现这一点吗?我正在使用Delphi XE和Lazarus.如果有人可以请指出我
美好的一天 我在网上搜索任何方向,如果这是可能的,但无济于事.我需要编写一个应用程序,允许我选择另一个应用程序,并通过这样做使选定的应用程序半透明和在顶部(如鬼图像叠加). 用Delphi可以实现这一点吗?我正在使用Delphi XE和Lazarus.如果有人可以请指出我从哪里开始,我将非常感激. 提前致谢, 解决方法您可以这样做,但不建议这样做,因为这种行为必须由自己的应用程序处理.无论如何,如果你坚持,因为你有充分的理由这样做,这里我留下代码来设置窗口的透明度和使窗户最多,只是为了说明如何做.透明度 必须使用带有WS_EX_LAYERED标志的 Procedure SethWndTrasparent(hWnd: HWND;Transparent:boolean); var l : Longint; lpRect : TRect; begin if Transparent then begin l := GetWindowLong(hWnd,GWL_EXSTYLE); l := l or WS_EX_LAYERED; SetWindowLong(hWnd,GWL_EXSTYLE,l); SetLayeredWindowAttributes(hWnd,180,LWA_ALPHA); end else begin l := GetWindowLong(hWnd,GWL_EXSTYLE); l := l xor WS_EX_LAYERED; SetWindowLong(hWnd,l); GetWindowRect(hWnd,lpRect); InvalidateRect(hWnd,lpRect,true); end; end; 使窗户最顶级 必须使用 Procedure SethWndOnTop(hWnd: HWND); var lpRect : TRect; begin if GetWindowRect(hWnd,lpRect) then SetWindowPos(hWnd,HWND_TOPMOST,lpRect.left,lpRect.top,lpRect.Right-lpRect.left,lpRect.Bottom-lpRect.Top,SWP_SHOWWINDOW); end; (编辑:瑞安网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |