Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Standard-Fensterfarbe bei WinAPI-Fenstern?

  Alt 5. Aug 2004, 15:58
Also bei mir unter 2000 tut es das COLOR_APPWORKSPACE. Und in der aktuellen Version hat Mathias das für XP ergänzt:
Zitat:
Hinweis für Windows XP
Wie Ihnen das Bild links zeigt, wird unter Windows XP der Fensterhintergrund evtl. zu dunkel dargestellt. Das liegt an der Verwendung von COLOR_APPWORKSPACE (wie eingangs gezeigt) bei aktiven Themes. Als Abhilfe sollten Sie mit der Funktion "GetSysColorBrush" die Farbe für 3D-Elemente laden und benutzen:
wc.hbrBackground := GetSysColorBrush(COLOR_3DFACE);


Wie Sie im Bild rechts sehen können, wird dann der Hintergrund korrekt dargestellt:

*

Sie können diesen Befehl auch verwenden, wenn Sie keine Themes aktiviert haben bzw. ein anderes Betriebssystem als Windows XP benutzen (9x, ME, NT und 2000). Eine Übersicht über die möglichen Farbwerte finden Sie unter dem Befehl "GetSysColor" im PSDK.
Der Unterschied zwischen beiden Befehlen ist, dass "GetSysColorBrush" die gewünschte Farbe gleich als so genannten Brush zurückliefert, der sofort mit der Membervariablen hbrBackground (s. TWndClassEx-Record) benutzt werden kann. Dagegen müssten Sie das Ergebnis von "GetSysColor" (ein dword-Wert mit den RGB-Informationen der Farbe) erst bspw. mit "CreateSolidBrush" umwandeln, um ihn für den Fensterhintergrund nutzen zu können.
Nicht umsonst ist bei den Demos noch das Tutorial dabei.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat