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