windows – 使其他应用程序窗口在Delphi中是半透明的
发布时间:2020-12-14 05:53:24 所属栏目:Windows 来源:网络整理
导读:美好的一天 我在网上搜索任何方向,如果这是可能的,但无济于事.我需要编写一个应用程序,允许我选择另一个应用程序,并通过这样做使选定的应用程序半透明和在顶部(如鬼图像叠加). 用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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在Windows上使用ActivePerl打开浏览器到URL?
- active-directory – 委派在Microsoft Exchange 2013中更改
- 测量Windows中设备驱动程序的内存使用情况
- windows – 设置iis的语言
- windows-runtime – Windows Phone 8.1上的MissingManifest
- 为什么我会收到多个同类窗口消息?
- windows – 如何监控员工的计算机活动?
- windows – Dockerfile – 在一个RUN命令中删除文件,它仍然
- 为什么MSBuild在本地复制所有DLL,但在我们的构建服务器上它
- .net – 禁用“应用程序已停止工作”窗口