CMenu::DrawItem
Llamado por el marco cuando un aspecto visual de los cambios propietario-drenados de un menú.
virtual void DrawItem(
LPDRAWITEMSTRUCT lpDrawItemStruct
);
Parámetros
- lpDrawItemStruct
Un puntero a una estructura de DRAWITEMSTRUCT que contiene información sobre el tipo de gráfico requerido.
Comentarios
El miembro de itemAction de la estructura de DRAWITEMSTRUCT define la acción de dibujo que debe realizarse.Invalide esta función miembro para implementar el gráfico para un objeto de CMenu de dibujo propietario.La aplicación debe restaurar todos los objetos de la interfaz de (GDI) dispositivo gráfico seleccionado para el contexto de presentación proporcionado en lpDrawItemStruct antes de la finalización de esta función miembro.
Vea CWnd:: OnDrawItem para obtener una descripción de la estructura de DRAWITEMSTRUCT .
Ejemplo
El código siguiente es el ejemplo de MFC CTRLTEST :
// 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);
}
}
Requisitos
encabezado: afxwin.h