void CIconMenu::DrawItem(LPDRAWITEMSTRUCT lpStruct)
{if(lpStruct->CtlType==ODT_MENU)
{
if(lpStruct->itemData==NULL) return;
unsigned int m_state=lpStruct->itemState;
CDC* m_dc=CDC::FromHandle(lpStruct->hDC);
//m_dc.Attach(lpStruct->hDC); CString str=((CMenuItemInfo*)(lpStruct->itemData))->m_ItemText;
LPSTR m_str=str.GetBuffer(str.GetLength()); int m_itemID=((CMenuItemInfo*)(lpStruct->itemData))->m_ItemID;
int m_itemicon = ((CMenuItemInfo*)(lpStruct->itemData))->m_IconIndex;
CRect m_rect=lpStruct->rcItem;

m_dc->SetBkMode(TRANSPARENT); switch(m_itemID)
{
case -2:
{
DrawTopMenu(m_dc,m_rect,(m_state&ODS_SELECTED)||(m_state&0x0040));//0x0040==ODS_HOTLIGHT DrawItemText(m_dc,m_str,m_rect);
break;
}
case -1:
{
DrawItemText(m_dc,m_str,m_rect);
break;
}
case 0:
{ DrawItemText(m_dc,m_rect);
break;
}
default:
{
DrawComMenu(m_dc,m_rect,0xfaa0,0xf00ff,m_state&ODS_SELECTED);
DrawItemText(m_dc,m_str,m_rect);
DrawMenuIcon(m_dc,m_rect,m_itemicon);
break;
}
} }}
请帮忙解释下这段代码功能和,我的书上缺乏对DrawItemText(),DrawMenuIcon,DrawTopMenu的定义,谢谢高手指点一下该怎么解决,刚刚开始接触mfc,问题很菜谢谢