CHeaderCtrl::DrawItem
Aufgerufen vom Framework wenn ein visueller Aspekt von Änderungen eines Ownerdrawnheader-steuerelements.
virtual void DrawItem(
LPDRAWITEMSTRUCT lpDrawItemStruct
);
Parameter
- lpDrawItemStruct
Ein Zeiger auf eine DRAWITEMSTRUCT-Struktur, die das zu zeichnende Element beschreibt.
Hinweise
Der itemAction-Member der DRAWITEMSTRUCT-Struktur definiert die Zeichnungsaktion, die ausgeführt werden soll.
Standardmäßig hat diese Memberfunktion nichts.Überschreiben Sie diese Memberfunktion, um Zeichnen für ein Ownerdrawn-CHeaderCtrl-Objekt zu implementieren.
Die Anwendung sollte alle Objekte des GDI (Graphics Device Interface) wiederherstellen, die für den Anzeigekontext ausgewählt werden, der in lpDrawItemStruct angegeben wird, bevor diese Memberfunktion beendet wird.
Beispiel
// 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);
}
Anforderungen
Header: afxcmn.h