2016-12-22 4 views
-2

나는 배경색을 설정하기 위해 clrTextBk을 사용합니다. 그러나 Windows 시스템에는 표준 배경색이 다른 많은 테마가 있습니다. 예를 들어, Windows XP 테마 사용 색상 # 316ac5, COLOR_HOTLIGHT, # 0a246a 및 기타 색상과 같은 고전적인 테마 사용 색상은 clrTextBk으로 사용됩니다. 을 COLOR_BACKGROUND 또는 COLOR_DESKTOP으로 사용해 볼 수는 있지만이 색상은 clrTextBk의 표준이 아닙니다. 현재 테마의 표준 배경색 (clrTextBk)을 얻는 방법은 무엇입니까?WinApi - 표준 배경색 얻기

+0

테마 api를 사용해야합니다. –

+0

감사합니다. 나는'OpenThemeData (hMainWnd, PWideChar ('TEXTSTYLE'))'을 사용하려고 시도했으나 에러가 발생했다 : ** SIGSEGV **. –

+0

어떻게 컴파일 되었습니까? 문자 상수에는 하나 이상의 실제 문자를 사용할 수 없습니다. 게다가 넓은 문자열도 아닙니다! 어쨌든 나는 네 상황이 무엇인지 모르겠다. 어떤 종류의 표면을 그리려는거야? 탭 페이지? 비 클라이언트 영역? 다른 것? 도움이 될 스크린 샷을 제공 할 수 있다면. 또한 텍스트 배경색이나 다른 배경색에 대해서도 이야기하고 있습니까? 또한 표준 대화 상자 배경색은 'COLOR_BTNFACE'이며 테마가 활성화되어 있어도 할 일에 따라 걱정할 필요가 없습니다. – andlabs

답변

0

대답 (당신에게 코디 회색andlabs 감사) :

clrTextBk is a field of NMLVCUSTOMDRAW

을 내가 선택한 텍스트의 표준 배경 색상을 얻기 위해 사용 GetSysColor(COLOR_HIGHLIGHT)이 필요했습니다.