CWnd::OnCtlColor
자식 컨트롤이 그려 지 려 되 면 프레임 워크는이 멤버 함수를 호출 합니다.
afx_msg HBRUSH OnCtlColor(
CDC* pDC,
CWnd* pWnd,
UINT nCtlColor
);
매개 변수
pDC
자식 창에 대 한 디스플레이 컨텍스트를 포인터를 포함합니다.일시적일 수 있습니다.pWnd
컨트롤의 색을 요청에 대 한 포인터를 포함 합니다.일시적일 수 있습니다.nCtlColor
컨트롤의 형식을 지정 하는 다음 값 중 하나가 포함 됩니다.CTLCOLOR_BTN 단추 컨트롤
CTLCOLOR_DLG 대화 상자
CTLCOLOR_EDIT 편집 컨트롤
CTLCOLOR_LISTBOX 목록 상자 컨트롤
CTLCOLOR_MSGBOX 메시지 상자
CTLCOLOR_SCROLLBAR 스크롤 막대 컨트롤
CTLCOLOR_STATIC 정적 컨트롤
반환 값
OnCtlColor컨트롤 배경을 그리기에 사용 되는 브러시를 핸들을 반환 해야 합니다.
설명
대부분의 컨트롤 준비 하는 부모 (일반적으로 대화 상자)이이 메시지를 보내기는 pDC 정확한 색을 사용 하 여 컨트롤 그리기.
텍스트 색을 변경 하려면 호출을 SetTextColor 멤버 함수를 원하는 빨강, 녹색 및 파랑 (RGB) 값.
단일 행 편집 컨트롤의 배경색을 변경 하려면 브러시 핸들 모두에서 설정의 CTLCOLOR_EDIT 및 CTLCOLOR_MSGBOX 호출 및 메시지 코드는 CDC::SetBkColor 함수에 대 한 응답으로는 CTLCOLOR_EDIT 코드.
OnCtlColor실제로 콤보 상자 자식 및 않습니다 자식 창의 드롭다운 목록 상자 이기 때문에 드롭다운 콤보 상자의 목록 상자에 대해 호출 됩니다.드롭다운 목록 상자의 색을 변경 하려면 만들는 CComboBox 재정의로 OnCtlColor 는 검사에 대 한 CTLCOLOR_LISTBOX 에 있는 nCtlColor 매개 변수.이 처리기는 SetBkColor 텍스트의 배경색을 설정 하려면 멤버 함수를 사용 해야 합니다.
[!참고]
이 멤버 함수는 Windows 메시지를 처리 하는 응용 프로그램을 허용 하는 프레임 워크에서 호출 됩니다.메시지를 받을 때 프레임 워크에 의해 전달 된 매개 변수를 함수에 전달 된 매개 변수를 반영 합니다.이 함수의 기본 클래스 구현을 호출 하는 경우 해당 구현을 원래 메시지와 입력 매개 변수가 없는 함수에 전달 된 매개 변수를 사용 합니다.대화 상자 클래스에 다음 메서드를 추가 하려면 Visual Studio 속성 창에 대 한 WM_CTLCOLOR 메시지 처리기를 추가 하려면 사용 합니다.또는 수동으로 ON_WM_CTLCOLOR() 입력 메시지 맵에 추가할 수 있습니다.
예제
// This OnCtlColor handler will change the color of a static control
// with the ID of IDC_MYSTATIC. The code assumes that the CPenWidthsDlg
// class has an initialized and created CBrush member named m_brush.
// The control will be painted with red text and a background
// color of m_brush.
HBRUSH CPenWidthsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// Call the base class implementation first! Otherwise, it may
// undo what we're trying to accomplish here.
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// Are we painting the IDC_MYSTATIC control? We can use
// CWnd::GetDlgCtrlID() to perform the most efficient test.
if (pWnd->GetDlgCtrlID() == IDC_MYSTATIC)
{
// Set the text color to red
pDC->SetTextColor(RGB(255, 0, 0));
// Set the background mode for text to transparent
// so background will show thru.
pDC->SetBkMode(TRANSPARENT);
// Return handle to our CBrush object
hbr = m_brush;
}
return hbr;
}
요구 사항
헤더: afxwin.h