Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   WINDOWS CaptionButton (https://www.delphipraxis.net/97498-windows-captionbutton.html)

Störtebeker 11. Aug 2007 15:51


WINDOWS CaptionButton
 
Hi,

wo finde ich denn bei WINDOWS (XP) die Button, die auch in der Titelleiste immer zu finden sind?
(Maximieren, Minimieren, Beenden, etc.)

xaromz 11. Aug 2007 16:47

Re: WINDOWS CaptionButton
 
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

DP-Maintenance 12. Aug 2007 21:10

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Klatsch und Tratsch" nach "Sonstige Fragen zu Delphi" verschoben.
Sicher kein K&T :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz