解决方法
几周前,我在我的博客上发布了
this article.
关键是使用GetConsoleWindow
和DwmEnableBlurBehindWindow
功能.
GetConsoleWindow函数检索与调用进程关联的控制台使用的窗口句柄.
DwmEnableBlurBehindWindow函数启用提供的窗口句柄上的模糊效果(玻璃).
program ConsoleGlassDelphi; {$APPTYPE CONSOLE} uses Windows,SysUtils; type DWM_BLURBEHIND = record dwFlags : DWORD; fEnable : BOOL; hRgnBlur : HRGN; fTransitionOnMaximized : BOOL; end; function DwmEnableBlurBehindWindow(hWnd : HWND; const pBlurBehind : DWM_BLURBEHIND) : HRESULT; stdcall; external 'dwmapi.dll' name 'DwmEnableBlurBehindWindow';//function to enable the glass effect function GetConsoleWindow: HWND; stdcall; external kernel32 name 'GetConsoleWindow'; //get the handle of the console window function DWM_EnableBlurBehind(hwnd : HWND; AEnable: Boolean; hRgnBlur : HRGN = 0; ATransitionOnMaximized: Boolean = False; AFlags: Cardinal = 1): HRESULT; var pBlurBehind : DWM_BLURBEHIND; begin pBlurBehind.dwFlags:=AFlags; pBlurBehind.fEnable:=AEnable; pBlurBehind.hRgnBlur:=hRgnBlur; pBlurBehind.fTransitionOnMaximized:=ATransitionOnMaximized; Result:=DwmEnableBlurBehindWindow(hwnd,pBlurBehind); end; begin try DWM_EnableBlurBehind(GetConsoleWindow(),True); Writeln('See my glass effect'); Writeln('Go Delphi Go'); Readln; except on E:Exception do Writeln(E.Classname,': ',E.Message); end; end.
这只是一个基本的例子;您必须检查Windows操作系统版本以避免问题.
原文地址:https://www.jb51.cc/delphi/101865.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。