Condividi tramite


CButton::DrawItem

Chiamato dal framework quando un aspetto visivo di un pulsante creato dal proprietario è stato modificato.

virtual void DrawItem(
   LPDRAWITEMSTRUCT lpDrawItemStruct 
);

Parametri

  • lpDrawItemStruct
    Un puntatore a una struttura DRAWITEMSTRUCT.La struttura contiene informazioni sull'elemento come estrarre e il tipo di disegno richiesto.

Note

Un pulsante creato dal proprietario dello stile BS_OWNERDRAW impostato.Eseguire l'override della funzione membro per implementare il disegno di un oggetto creato dal proprietario CButton.L'applicazione deve ripristinare tutti gli oggetti di (GDI) (application programming Interface) selezionati per il contesto di visualizzazione disponibile in lpDrawItemStruct prima che la funzione membro termini.

Vedere anche i valori dello stile BS_.

Esempio

// NOTE: CMyButton is a class derived from CButton. The CMyButton
// object was created as follows:
//
// CMyButton myButton;
// myButton.Create(_T("My button"), 
//      WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW, 
//      CRect(10,10,100,30), pParentWnd, 1);
//

// This example implements the DrawItem method for a CButton-derived 
// class that draws the button's text using the color red.
void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
   UINT uStyle = DFCS_BUTTONPUSH;

   // This code only works with buttons.
   ASSERT(lpDrawItemStruct->CtlType == ODT_BUTTON);

   // If drawing selected, add the pushed style to DrawFrameControl.
   if (lpDrawItemStruct->itemState & ODS_SELECTED)
      uStyle |= DFCS_PUSHED;

   // Draw the button frame.
   ::DrawFrameControl(lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem, 
      DFC_BUTTON, uStyle);

   // Get the button's text.
   CString strText;
   GetWindowText(strText);

   // Draw the button text using the text color red.
   COLORREF crOldColor = ::SetTextColor(lpDrawItemStruct->hDC, RGB(255,0,0));
   ::DrawText(lpDrawItemStruct->hDC, strText, strText.GetLength(), 
      &lpDrawItemStruct->rcItem, DT_SINGLELINE|DT_VCENTER|DT_CENTER);
   ::SetTextColor(lpDrawItemStruct->hDC, crOldColor);
}

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe di CButton

Grafico della gerarchia

CButton::SetButtonStyle

WM_DRAWITEM