2012-04-05 5 views
1

Wir haben einige C++ Win32-Code, der eine Hintergrundfarbe auf bestimmte Steuerelemente durch Antworten auf die WM_CTLCOLOR ... Nachrichten anwendet.CBS_DROPDOWNLIST Combo reagiert nicht auf WM_CTLCOLOR ... unter Windows UX Theming

Dies funktioniert einwandfrei, wenn Windows UX Theming nicht in Betrieb ist.

Unter Windows 7 mit dem Standardthema werden nur Comboboxen mit dem CBS_DROPDOWNLIST-Stil mit dem grauen Hintergrund des Designs angezeigt. CBS_DROPDOWN-Kombinationsfelder reagieren korrekt auf die Hintergrundfarbe, wenn das Motiv aktiviert ist.

Ich weiß, ich könnte das Thema für die betroffenen Steuerelemente entfernen, aber das macht sie seltsam aussehen.

Jeder hat eine Idee von der offiziellen Möglichkeit, die Hintergrundfarbe von einzelnen themed Kontrollen jetzt zu ändern, dass MS den WM_CTLCOLOR ... Kram gebrochen zu haben scheint.

Dank JF

+1

Legen Sie einfach das CBS_OWNERDRAWFIXED-Stilflag fest. Das wird den thematischen Look sofort zunichte machen, du bekommst den alten Pre-Vista Stil. Ihre Benutzer könnten das ein bisschen Gitter finden, ymmv. –

+1

Im Allgemeinen ist es keine gute Idee, die Farben von themenbezogenen Steuerelementen anzupassen, da Sie nicht wissen, welche Farben im Theme enthalten sind. Sie können also nicht wissen, ob Sie die Farben versehentlich auf "Grau auf Grau" gesetzt haben. oder etwas ähnliches. –

Antwort

0

Wenn Sie die Farbe für die Themen-Steuerelemente, die Sie benutzerdefinierte es ändern müssen, um zeichnen, das Thema API. Das ist eine ziemlich knifflige Aufgabe, die im Prinzip undokumentiert ist. Viel Glück!

1

Sie können überprüfen, ob Sie mit NM_CUSTOMDRAW Benachrichtigungen erreichen können, was Sie wollen. Diese werden an die Eltern gesendet (wie WM_CTLCOLOR ... Nachrichten). Einige Steuerelemente funktionieren mit diesen Benachrichtigungen besser als andere. Sie erhalten nicht immer alle Benachrichtigungen, die Sie erwarten.

Die andere Option wäre, das Steuerelement zu unterklassifizieren und WM_PAINT zu überschreiben. Das wäre eine Menge Arbeit, aber es ist machbar. Es gibt Dokumentation auf painting with the themes.

+0

Die Dokumentation, auf die Sie sich beziehen, ist im Grunde nutzlos, leider. Dies ist ein Bereich von Fenstern, der hoffnungslos unzureichend dokumentiert ist. –

+0

@DavidHeffernan: Können Sie genauer sein? Ich habe einige Informationen von dieser Seite erfolgreich verwendet. –

+0

Haben Sie jemals mit der Dokumentation zu Teilen und Stilen gearbeitet? –

Verwandte Themen