CMenu::DrawItem
Volat framework při vizuální aspekt změny nakreslena vlastník nabídky.
virtual void DrawItem(
LPDRAWITEMSTRUCT lpDrawItemStruct
);
Parametry
- lpDrawItemStruct
Ukazatel DRAWITEMSTRUCT strukturu, která obsahuje informace o typu výkresu požadované.
Poznámky
itemAction Člena DRAWITEMSTRUCT definuje strukturu výkresu akci, která má být provedena.Potlačit toto členské funkce kreslení pro vlastníka draw implementovat CMenu objektu.Obnovte všechny grafické zařízení rozhraní (GDI) objekty vybrané pro zobrazení kontextové dodány v aplikaci lpDrawItemStruct před ukončením této členské funkce.
Viz CWnd::OnDrawItem popis DRAWITEMSTRUCT struktury.
Příklad
Následující kód je jednotka MFC z CTRLTEST vzorku:
// Override DrawItem() to implement drawing for an owner-draw CMenu object.
// CColorMenu is a CMenu-derived class.
void CColorMenu::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
CDC* pDC = CDC::FromHandle(lpDIS->hDC);
COLORREF cr = (COLORREF)lpDIS->itemData; // RGB in item data
if (lpDIS->itemAction & ODA_DRAWENTIRE)
{
// Paint the color item in the color requested
CBrush br(cr);
pDC->FillRect(&lpDIS->rcItem, &br);
}
if ((lpDIS->itemState & ODS_SELECTED) &&
(lpDIS->itemAction & (ODA_SELECT | ODA_DRAWENTIRE)))
{
// item has been selected - hilite frame
COLORREF crHilite = RGB(255-GetRValue(cr),
255-GetGValue(cr), 255-GetBValue(cr));
CBrush br(crHilite);
pDC->FrameRect(&lpDIS->rcItem, &br);
}
if (!(lpDIS->itemState & ODS_SELECTED) &&
(lpDIS->itemAction & ODA_SELECT))
{
// Item has been de-selected -- remove frame
CBrush br(cr);
pDC->FrameRect(&lpDIS->rcItem, &br);
}
}
Požadavky
Záhlaví: afxwin.h