2010-04-12 5 views
5

Windows 프로그램에서 소유자가 그려주는 목록 컨트롤이 있습니다. 배경색을 얻으려면 CListCtrl :: GetBkColor를 사용하고 선택된 항목에는 GetSysColor (COLOR_HIGHLIGHT)를 사용합니다. 이 컨트롤은 포커스가없는 경우를 제외하고 Windows가 비 소유자 그리기 목록 컨트롤에 사용하는 것과 일치하며 배경이 회색으로 바뀝니다.owner-draw Windows 목록 컨트롤 배경에 사용할 색은 무엇입니까?

Windows는 선택한 배경에 초점이 맞지 않은 배경에 GetSysColor 상수 중 하나를 사용합니까? 그렇다면 어느 것입니까?

답변

6

(3)으로 생각됩니다.

업데이트 : 아니요, COLOR_BTNFACE (15) 인 것 같습니다.

+0

그리고 텍스트는 COLOR_BTNTEXT 여야합니다. 감사합니다! –

1

아, 그래. 시시한의 비트와 함께, 나는 그것이 C++ COLOR_3DFACE

COLOR_BTNFACE, COLOR_MENU에 해당합니다 .NET에서 SystemColors.Control 색상을 사용하는 것으로 확인되었습니다 및 COLOR_MENUBAR 모든 또한 윈도우의 기본 설치에서 동일한 색상을 표현 .

+1

'ListView'는'View'를'Details'로 설정하고'HideSelection'을'false'로 설정하여 이와 같이 동작합니다. – MusiGenesis

+0

@MusiGenesis, 세부 사항 기입에 감사드립니다 - 당신 말이 맞습니다. –

+0

COLOR_3DFACE와 COLOR_BTNFACE는 정확히 동일합니다 (둘 다 값 15에 매핑 됨). 다른 것들은 초기에 같은 색일 수 있지만 그들은 별개의 값이며 독립적으로 변경할 수 있습니다. 따라서 질문을하는 이유. –

관련 문제