windows – 使其他应用程序窗口在Delphi中是半透明的
发布时间:2021-02-05 01:16 所属栏目:52 来源:网络整理
导读:美好的一天 我在网上搜索任何方向,如果这是可能的,但无济于事.我需要编写一个应用程序,允许我选择另一个应用程序,并通过这样做使选定的应用程序半透明和在顶部(如鬼图像叠加). 用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; (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读