J'essaye de refaire certains de mes anciens projets pour supporter Aero Glass. Bien qu'il soit assez facile d'activer le cadre en verre, j'ai rencontré quelques problèmes majeurs. J'ai utilisé ce code:Problèmes avec Aero Glass dans les applications Delphi 7
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;
J'ai donc eu la jolie fenêtre en verre maintenant. En raison du noir étant la couleur transparente maintenant (choix un peu stupide, pourquoi ne pourrait-il pas être rose) tout ce qui est clBlack devient transparent, aussi. Cela signifie toutes les étiquettes, les modifications, les textes de bouton ... même si je mets du texte à une autre couleur au moment du design, DWM les rend toujours de cette couleur ET transparent.
Eh bien, ma question serait - s'il est possible de résoudre ce problème?
Les gens disent parfois « si elle est pas cassé, ne le réparez il". Mais peut-être qu'il est temps de passer à autre chose. Je vais vérifier la version d'essai de 2010. Thx;) – Cralias
Cependant, sur Vista + c'est un peu cassé –
@Gerry: "* C'est * un peu cassé ..." qui "It"? Delphi 7 ou Delphi 2007? Je pense que j'ai été clair dans ma réponse ... –