微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Delphi在控制台应用程序中激活玻璃效果(Windows Vista / 7)

因为我可以在我的控制台应用程序上激活玻璃效果.我使用的是 Windows 7和Delphi 2010.

我找到了this申请,所以应该可以.

解决方法

几周前,我在我的博客上发布了 this article.

关键是使用GetConsoleWindowDwmEnableBlurBehindWindow功能.

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 举报,一经查实,本站将立刻删除。

相关推荐