Win XP: Farben bei Fensterhintergründen



  • Hi Leute!

    Ich hab schon wieder ein kleines Problem: Wenn ich eine Anwendung erstelle, dann kann ich ja bei der Klassenstruktur ein Element hbrBackground setzen. Das hab ich unter Windows 98 zum Beispiel immer so gemacht:

    WNDCLASS wc;
    .
    .
    .
    wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
    

    Jetzt hab ich aber das Problem, das ein Menü unter XP in einer helleren Farbe, mehr schon ein Beigeton, angezeigt wird. Wie kann ich nun die Fenster meiner Anwendung (also die hbrBackground-Eigenschaft) auf dieselbe Systemfarbe setzen? Denn LTGRAY_BRUSH ist zu dunkel und alle andere Töne passen auch nicht (von der MSDN-Page http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_1t10.asp

    Hab hier auch nix dazu gefunden. Wisst ihr ne Lösung? Mit RGB() wärs ja auch möglich, aber dann sieht das ja auf anderen Systemen, z.B. 98 doof aus. Und dann sähe es auch wieder blöde aus, wenn der User die Systemfarben ändert ...

    Danke & Gruss,
    ~code_pilot 😃



  • Ich denke, dass GetSysColorBrush das ist, was du suchst 🙂 - die passenden Werte dazu findest du hier



  • Yeah!

    wc.hbrBackground	= (HBRUSH)GetSysColorBrush(COLOR_MENU);
    

    BESTEN DANK!


Anmelden zum Antworten