Partager via


CHeaderCtrl::DrawItem

Appelé par l'infrastructure lorsqu'un aspect visuel d'un contrôle header owner-draw change.

virtual void DrawItem(
   LPDRAWITEMSTRUCT lpDrawItemStruct 
);

Paramètres

  • lpDrawItemStruct
    Un pointeur vers une structure de DRAWITEMSTRUCT décrivant l'élément à peindre.

Notes

Le membre d' itemAction de la structure d' DRAWITEMSTRUCT définit le dessin qui doit être exécuté.

Par défaut, cette fonction membre ne fait rien.Remplacez cette fonction membre pour implémenter le dessin d'un objet d' CHeaderCtrl owner draw.

L'application doit restaurer tous les objets de définition de données (GDI) Graphics Device Interface sélectionnés pour le contexte d'affichage fourni dans lpDrawItemStruct pour que cette fonction membre se termine.

Exemple

// NOTE: CMyHeaderCtrl is a class derived from CHeaderCtrl.
// The CMyHeaderCtrl object was created as follows:
//
//   CMyHeaderCtrl m_myHeader;
//   myHeader.Create(WS_CHILD | WS_VISIBLE | HDS_HORZ,
//      CRect(10, 10, 600, 50), pParentWnd, 1);

// This example implements the DrawItem method for a 
// CHeaderCtrl-derived class that draws every item as a
// 3D button using the text color red.
void CMyHeaderCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
   // This code only works with header controls.
   ASSERT(lpDrawItemStruct->CtlType == ODT_HEADER);

   HDITEM hdi;
   const int c_cchBuffer = 256;
   TCHAR  lpBuffer[c_cchBuffer];

   hdi.mask = HDI_TEXT;
   hdi.pszText = lpBuffer;
   hdi.cchTextMax = c_cchBuffer;

   GetItem(lpDrawItemStruct->itemID, &hdi);

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

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

Configuration requise

Header: afxcmn.h

Voir aussi

Référence

Classe de CHeaderCtrl

Graphique de la hiérarchie

CWnd::OnDrawItem