gpt4 book ai didi

delphi - Delphi 7 应用程序中 Aero Glass 的问题

转载 作者:行者123 更新时间:2023-12-03 15:55:32 29 4
gpt4 key购买 nike

我正在尝试重新制作一些旧项目以支持 Aero Glass。虽然启用玻璃框架很容易,但我遇到了一些主要问题。我使用了这段代码:

var
xVer: TOSVersionInfo;
hDWM: THandle;
DwmIsCompositionEnabled: function(pbEnabled: BOOL): HRESULT; stdcall;
DwmExtendFrameIntoClientArea: function(hWnd: HWND; const pxMarInset: PRect): HRESULT; stdcall;
bEnabled: BOOL;
xFrame: TRect;

// ...

xVer.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
GetVersionEx(xVer);
if xVer.dwMajorVersion >= 6 then
begin
hDWM := LoadLibrary('dwmapi.dll');
@DwmIsCompositionEnabled := GetProcAddress(hDWM, 'DwmIsCompositionEnabled');
@DwmExtendFrameIntoClientArea := GetProcAddress(hDWM, 'DwmExtendFrameIntoClientArea');
if (@DwmIsCompositionEnabled <> nil) and
(@DwmExtendFrameIntoClientArea <> nil) then
begin
DwmIsCompositionEnabled(@bEnabled);
if bEnabled then
begin
xRect := Rect(-1, -1, -1, -1);
DwmExtendFrameIntoClientArea(FrmMain.Handle, @xRect);
end;
end;
FreeLibrary(hDWM);
end;

所以我现在有了漂亮的玻璃窗。由于黑色现在是透明颜色(有点愚蠢的选择,为什么不能是粉红色),任何 clBlack 也都会变得透明。这意味着所有标签、编辑、按钮文本...即使我在设计时将文本设置为其他颜色,DWM 仍然使它们具有这种颜色和透明。

好吧,我的问题是 - 是否有可能以某种方式解决这个问题?

最佳答案

Delphi 7 以及 D2006 之前的所有版本在 Windows Vista 及更新版本中还存在其他问题。

Delphi 2007 是第一个经过 Vista 认证的版本。我的建议是升级到 Delphi 2010。您修补 Delphi 7 的努力对于结果来说太大了。好吧,也许您需要将您的应用程序转换为 Unicode(这个过程远没有听起来那么痛苦 - 特别是如果您使用 Embarcadero 的论坛和/或此网站),但这是值得的。这不仅是为了兼容 Vista,而且还为了新版本 Delphi(特别是 Delphi 2010)中包含的所有好东西。

HTH

关于delphi - Delphi 7 应用程序中 Aero Glass 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2864567/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com