Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: WINDOWS CaptionButton

  Alt 11. Aug 2007, 16:47
Hallo,

Windows zeichnet diese Buttons über die Themes-Engine, bzw. ohne Themes manuell (farbige Rechtecke + Graphik aus einer speziellen Schriftart).
Das sieht dann so aus (am Beispiel des Schließen-Buttons, Version mit Themes):
Delphi-Quellcode:
procedure PaintCloseButton(DC: HDC; Down, Hot: Boolean; R: TRect);
var
  Button: TThemedWindow;
  Details: TThemedElementDetails;
  CR: TRect;
begin
  if ThemeServices.ThemesEnabled then
  begin
    Button := twCloseButtonNormal;

    if Down then
      Button := twCloseButtonPushed

    if Hot then
      Button := twCloseButtonHot;

    Details := ThemeServices.GetElementDetails(Button);

    CR := ThemeServices.ContentRect(0, Details, R);

    R.Left := R.Left * 2 - CR.Left;
    R.Top := R.Top * 2 - CR.Top;
    R.Right := R.Right * 2 - CR.Right;
    R.Bottom := R.Bottom * 2 - CR.Bottom;

    CR := ThemeServices.ContentRect(0, Details, R);

    ThemeServices.DrawElement(DC, Details, R, @CR);
  end;
end;
Als fertige Buttons gibt's die allerdings nicht, das musst Du selbst implementieren.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat