다음을 통해 공유


WM_CTLCOLORBTN 메시지

WM_CTLCOLORBTN 메시지는 단추를 그리기 전에 단추의 부모 창으로 전송됩니다. 부모 창은 단추의 텍스트와 배경색을 변경할 수 있습니다. 그러나 소유자가 그린 단추만 이 메시지를 처리하는 부모 창에 응답합니다.

WM_CTLCOLORBTN

    WPARAM wParam;
    LPARAM lParam; 

매개 변수

wParam

단추의 디스플레이 컨텍스트에 대한 핸들을 지정하는 HDC입니다.

lParam

단추에 대한 핸들을 지정하는 HWND입니다.

반환 값

애플리케이션이 이 메시지를 처리하는 경우 브러시에 대한 핸들을 반환해야 합니다. 시스템은 브러시를 사용하여 단추의 배경을 그립니다.

설명

애플리케이션이 만든 브러시를 반환하는 경우(예: CreateSolidBrush 또는 CreateBrushIndirect 함수 사용) 애플리케이션은 브러시를 해제해야 합니다. 애플리케이션이 시스템 브러시(예: GetStockObject 또는 GetSysColorBrush 함수에 의해 검색된 브러시)를 반환하는 경우 애플리케이션은 브러시를 해제할 필요가 없습니다.

기본적으로 DefWindowProc 함수는 단추의 기본 시스템 색을 선택합니다. BS_PUSHBUTTON, BS_DEFPUSHBUTTON 또는 BS_PUSHLIKE 스타일의 단추는 반환된 브러시를 사용하지 않습니다. 이러한 스타일의 단추는 항상 기본 시스템 색으로 그려집니다. 그리기 누름 단추에는 면, 강조 표시 및 그림자와 같은 여러 가지 브러시가 필요하지만 WM_CTLCOLORBTN 메시지는 하나의 브러시만 반환되도록 허용합니다. 누름 단추에 대한 사용자 지정 모양을 제공하려면 소유자가 그린 단추를 사용합니다. 자세한 내용은 소유자 작성 컨트롤 만들기를 참조하세요.

WM_CTLCOLORBTN 메시지는 스레드 간에 전송되지 않습니다. 하나의 스레드 내에서만 전송됩니다.

확인란 또는 라디오 단추의 텍스트 색은 상자 또는 단추, 확인 표시 및 텍스트에 적용됩니다. 이러한 단추의 포커스 사각형은 시스템 기본 색(일반적으로 검은색)으로 유지됩니다. 그룹 상자의 텍스트 색은 텍스트에 적용되지만 상자를 정의하는 선에는 적용되지 않습니다. 누름 단추의 텍스트 색은 포커스 사각형에만 적용됩니다. 텍스트의 색에는 영향을 주지 않습니다.

대화 상자 프로시저가 이 메시지를 처리하는 경우 원하는 반환 값을 INT_PTR로 캐스팅하고 값을 직접 반환해야 합니다. 대화 상자 프로시저가 FALSE를 반환하면 기본 메시지 처리가 수행됩니다. SetWindowLong 함수에 의해 설정된 DWL_MSGRESULT 값은 무시됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱만 해당]
헤더
Winuser.h(Windows.h 포함)

추가 정보

기타 리소스

RealizePalette

SelectPalette