2010-04-12 6 views
5

Ich habe eine Eigentümer-Liste in meinem Windows-Programm. Ich verwende CListCtrl :: GetBkColor, um die Hintergrundfarbe zu erhalten, und für ein ausgewähltes Element verwende ich GetSysColor (COLOR_HIGHLIGHT). Dies stimmt mit dem überein, was Windows für Steuerelemente, die nicht von Besitzern erstellt wurden, verwendet, außer für den Fall, dass das Steuerelement keinen Fokus hat - dann wird der Hintergrund durch Grau ersetzt.Welche Farbe für den Windows List Control-Hintergrund im Owner-Draw-Format?

Verwendet Windows eine der GetSysColor-Konstanten für den ausgewählten, aber nicht fokussierten Hintergrund? Wenn ja, welcher?

Antwort

6

COLOR_INACTIVECAPTION (3), denke ich.

Update: Nein, es sieht aus wie es ist nur COLOR_BTNFACE (15).

+0

Und der Text sollte COLOR_BTNTEXT sein. Vielen Dank! –

1

Ah, ok. Mit etwas Fummelei, habe ich festgestellt, dass es die SystemColors.Control Farbe in .net verwendet, das ist das Äquivalent der C++ COLOR_3DFACE

COLOR_BTNFACE, COLOR_MENU und COLOR_MENUBAR alle repräsentieren auch die gleiche Farbe auf einem Standard-Installation von Windows .

+1

Ein 'ListView' verhält sich so,' View' wird auf 'Details' und' HideSelection' auf 'false' gesetzt. – MusiGenesis

+0

@MusiGenesis, danke für das Ausfüllen der Details - Sie sind genau richtig. –

+0

COLOR_3DFACE und COLOR_BTNFACE sind genau gleich (sie entsprechen dem Wert 15). Die anderen, obwohl sie möglicherweise die gleiche Farbe haben, sind zunächst separate Werte und können unabhängig voneinander geändert werden. Also der Grund, warum ich die Frage gestellt habe. –

Verwandte Themen