2010-04-12 30 views
5

我的Windows程序中有一個自繪列表控件。我使用CListCtrl :: GetBkColor來獲取背景顏色,對於選定的項目我使用GetSysColor(COLOR_HIGHLIGHT)。這與Windows對非所有者繪製的列表控件使用的內容相匹配,除了控件沒有焦點的情況外 - 那麼背景將被替換爲灰色。在所有者繪製Windows列表控件背景中使用什麼顏色?

Windows是否爲所選但未聚焦的背景使用GetSysColor常量之一?如果是這樣,哪一個?

回答

6

COLOR_INACTIVECAPTION(3),我想。

更新:不,看起來它只是COLOR_BTNFACE(15)。

+0

而文字應該是COLOR_BTNTEXT。非常感謝! – 2010-04-13 16:21:00

1

啊,好的。帶着幾分擺弄的,我已經決定了它使用SystemColors.Control顏色在.NET中,這是C++的COLOR_3DFACE

COLOR_BTNFACECOLOR_MENU等效,並COLOR_MENUBAR也都代表了一個默認的相同顏色的Windows安裝。

+1

一個'ListView'的行爲就像這樣,'View'設置爲'Details'並且'HideSelection'設置爲'false'。 – MusiGenesis 2010-04-12 23:45:02

+0

@MusiGenesis,感謝您填寫細節 - 您完全正確。 – 2010-04-13 00:11:17

+0

COLOR_3DFACE和COLOR_BTNFACE完全相同(它們都映射到值15)。其他人,儘管他們最初可能是相同的顏色,他們是單獨的值,可以獨立地改變。因此我提出這個問題的原因。 – 2010-04-13 15:41:58

相關問題