CMenu::DrawItem
Chamado pela estrutura quando uma aparência visual de um menu proprietário desenhado alterar.
virtual void DrawItem(
LPDRAWITEMSTRUCT lpDrawItemStruct
);
Parâmetros
- lpDrawItemStruct
Um ponteiro a estrutura de DRAWITEMSTRUCT que contém informações sobre o tipo de desenho necessário.
Comentários
O membro de itemAction estrutura de DRAWITEMSTRUCT define a ação de desenho que deve ser executada.Substituir essa função de membro para implementar o desenho para um objeto de CMenu do proprietário.O aplicativo deve restaurar todos os objetos de (GDI) de interface do dispositivo de elementos gráficos selecionados para o contexto de exibição fornecido em lpDrawItemStruct antes de fim de essa função de membro.
Consulte CWnd::OnDrawItem para uma descrição da estrutura de DRAWITEMSTRUCT .
Exemplo
O exemplo de código a seguir é 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
Cabeçalho: afxwin.h