Aracılığıyla paylaş


CWnd::OnCtlColor

Alt Denetim hakkında çizilen olduğunda framework Bu üye işlevini çağırır.

afx_msg HBRUSH OnCtlColor(
   CDC* pDC,
   CWnd* pWnd,
   UINT nCtlColor 
);

Parametreler

  • pDC
    Görüntü kapsamı alt pencere için bir işaretçi içerir. Geçici olabilir.

  • pWnd
    Renk için soran denetlemek için bir işaretçi içerir. Geçici olabilir.

  • nCtlColor
    Denetim türünü belirleyen şu değerlerden birini içerir:

    • ctlcolor_btn düğmesi denetimi

    • ctlcolor_dlg iletişim kutusu

    • CTLCOLOR_EDIT düzenleme denetimi

    • CTLCOLOR_LISTBOX liste kutusu denetimi

    • ctlcolor_msgbox ileti kutusu

    • ctlcolor_scrollbar kaydırma çubuğu denetimi

    • CTLCOLOR_STATIC statik denetimi

Dönüş Değeri

OnCtlColorbir tanıtıcı denetimin arka plan boyama için kullanılacak olması durumunda fırça döndürmesi gerekir.

Notlar

Birçok denetim hazırlamak için kendi üst (genellikle bir iletişim kutusu) Bu ileti gönderme pDC doğru renkleri kullanarak denetim çizme.

Metin rengini değiştirmek için arama SetTextColor istenen kırmızı, yeşil ve mavi (rgb) değerleri ile üye işlevi.

Tek satırlı düzenleme denetimi arka plan rengini değiştirmek için fırçayı tanıtıcı her ikisinde de set CTLCOLOR_EDIT ve ctlcolor_msgbox ileti kodları ve çağrı CDC::SetBkColor yanıt olarak işlev CTLCOLOR_EDIT kod.

OnCtlColoraşağı açılan liste kutusu aslında kutunun alt ve alt pencere değil, çünkü bir açılan kutunun liste kutusu için adlı değil. Aşağı açılan liste kutusunun rengini değiştirmek için oluşturma bir CComboBox geçersiz kılma içeren OnCtlColor denetler için CTLCOLOR_LISTBOX , nCtlColor parametresi. Bu işleyicisi'ndeki SetBkColor üye işlevi metnin arka plan rengini ayarlamak için kullanılmalıdır.

Not

Bu üye işlevi, uygulamanız Windows ileti işleme izin çerçevesi tarafından çağrılır.İleti alındığında çerçevesi tarafından alınan parametreleri, işleve iletilen parametreler yansıtır.Temel sınıf uygulaması, bu işlev çağrısı yaparsa, bu uygulama özgün iletiyi ve sağladığınız parametreleri ile işleve geçirilen parametreleri kullanır.Aşağıdaki yöntem iletişim sınıfa eklemek için ileti işleyicisi için wm_ctlcolor eklemek için Visual Studio özellikleri bölmesini kullanın.Alternatif olarak, ileti eşleme on_wm_ctlcolor() girdisini el ile ekleyebilirsiniz.

Örnek

// 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;
}

Gereksinimler

Başlık: afxwin.h

Ayrıca bkz.

Başvuru

CWnd Sınıfı

Hiyerarşi grafik

CDC::SetBkColor