CWnd::OnCtlColor
Ramy wywołania tej funkcji Członkowskich podczas kontroli dziecko ma być sporządzona.
afx_msg HBRUSH OnCtlColor(
CDC* pDC,
CWnd* pWnd,
UINT nCtlColor
);
Parametry
pDC
Zawiera wskaźnik do kontekstu wyświetlania okna podrzędnego.Mogą być tymczasowe.pWnd
Zawiera wskaźnik do sterowania pytaniem koloru.Mogą być tymczasowe.nCtlColor
Zawiera jedną z następujących wartości określające typ formantu:CTLCOLOR_BTN przycisk sterowania
CTLCOLOR_DLG okno dialogowe
CTLCOLOR_EDIT formant edycji
CTLCOLOR_LISTBOX formantu pola listy
CTLCOLOR_MSGBOX komunikatu
CTLCOLOR_SCROLLBAR pasek przewijania formantu.
CTLCOLOR_STATIC statyczne
Wartość zwracana
OnCtlColormusi zwrócić uchwyt pędzla, który ma być używany do malowania tła formantu.
Uwagi
Większość formantów Wyślij tę wiadomość do ich nadrzędnego (zwykle okno dialogowe), przygotować pDC dla formantu, używając prawidłowego kolorów rysunku.
Aby zmienić kolor tekstu, call SetTextColor Członkowskich funkcja z wartościami pożądanych czerwony zielony i niebieski (RGB).
Aby zmienić kolor tła formantu edycji pojedynczego wiersza, ustaw uchwyt pędzla w obu CTLCOLOR_EDIT i CTLCOLOR_MSGBOX kodów wiadomości i wywołanie CDC::SetBkColor funkcji w odpowiedzi na CTLCOLOR_EDIT kodu.
OnCtlColornie zostanie wywołana dla pola listy rozwijanej kombi, ponieważ pole listy rozwijanej jest faktycznie podrzędne pola kombi i nie podrzędną okna.Aby zmienić kolor w polu listy rozwijanej, utworzyć CComboBox z przesłonięciem, z OnCtlColor , sprawdza, czy CTLCOLOR_LISTBOX w nCtlColor parametru.W tej obsługi SetBkColor funkcji składowej muszą być używane do tekstu, kolor tła.
[!UWAGA]
Ta funkcja Członkowskich jest wywoływana przez RAM, aby umożliwić aplikacji do obsługi wiadomości dla systemu Windows.Parametry przekazywane do funkcji odzwierciedlać parametry otrzymanych w ramach, kiedy wiadomość została odebrana.Wywołanie jest klasa bazowa wykonania tej funkcji, że realizacja zostanie użyte parametry pierwotnie przekazywane wiadomości i nie podane parametry funkcji.Aby dodać następujące metody klasy okno dialogowe, należy użyć okienka właściwości programu Visual Studio do dodawania obsługi wiadomości dla WM_CTLCOLOR.Alternatywnie można ręcznie dodać wpis ON_WM_CTLCOLOR() do mapy wiadomości.
Przykład
// 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;
}
Wymagania
Nagłówek: afxwin.h