Aero Farben ermitteln



  • Hallo Leute,

    ich versuche gerade herrauszufinden wie ich an die Aero Farben ermitteln kann. Z.B. beim Explorer der Bereich wo der Ordnername und das Suchfeld sind wenn nur Aero Basic aktiviert ist. Wie bekomme ich diese Blaufarbtöne für aktiv/inaktiv?

    Ich dachte zunächst ich könnte z.B. GetSysColor(COLOR_ACTIVECAPTION) verwenden, aber das gibt mir eine ganz andere Farbe zurück.

    Mit DwmIsCompositionEnabled() kann ich nach meinem Verständnis nur ermitteln ob Aero Glass aktiviert ist oder nicht. Hat noch jemand einen Tipp wie ich herrausfinde ob Aero Glass, Aero Basic oder ein anderes Theme aktiv ist?


  • Mod

    IMHO geht das gar nicht. Du kannst dem Theme höchtens sagen, dass er in einem bestimmten Stil etwas malen soll...
    Wie ein Theme etwas macht ist nach meiner Kenntnis nur im Theme verborgen.



  • Hallo C++ Fritze,
    wenn es darum geht die eingestellte Theme ausfindig zu machen: GetCurrentThemeName() ist Dein Freund!

    Unter WinXP liefert sie z.B. 'C:\WINDOWS\resources\Themes\luna\luna.msstyles', 'NormalColor' und 'NormalSize'
    Unter WinVista bzw. Win7 liefert sie z.B. 'C:\Windows\resources\themes\Aero\Aero.msstyles', 'NormalColor' und 'NormalSize'

    Die (hier fett hervorgehobenen) Farbschemas (color scheme name) könnten Dich interessieren.

    Ansonsten könnte Dich GetThemeColor() weiterhelfen, welche Dir die Farbinformationen für jedes einzelne Fenster- und Control-Teil liefern kann.

    HTH,
    Martin

    BTW: Checke vorher nach, ob sowohl IsThemeActive() als auch IsAppThemed() jeweils TRUE liefern!
    Nur dann sind die Informationen von GetCurrentThemeName() auch für Deine Applikation gültig!



  • Vielen dank Mmacher genau das habe ich gesucht!

    Ich werde mal die Doku zu den Funktionen studieren.



  • Puh also diese API ist wirklich schwer verständlich insbeonsdere mit diesen Parts and States sowie den Property Identifiers.
    Schon alleine der pszClassList Parameter bei der OpenThemeData Funktion erwartet ist mir unklar. Der Hinweiß auf die AeroStyle.xml hat mir nur in soweit geholfen das ich jetzt weiß das ich die Farben für GradientActiveCaption und GradientInactiveCaption suche. Nur wie soll das per Programm gehen?

    Kann mich jemand auf ein verständliches Beispiel verweisen?


Anmelden zum Antworten