SDI程序,重画菜单的时候,MeasureItem 函数错误!
void CMenuEx::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
CMenuItemContext * pItem = (CMenuItemContext *)(lpMeasureItemStruct->itemData);
if (pItem->nMenuID == 0) //错误
lpMeasureItemStruct->itemHeight = 10;
else
{
CDC * pDC = AfxGetMainWnd()->GetDC();
CString strText = pItem->strText;
CSize size;
size = pDC->GetTextExtent(pItem->strText);
lpMeasureItemStruct->itemWidth = size.cx + 4;
lpMeasureItemStruct->itemHeight = size.cy + 4;
AfxGetMainWnd()->ReleaseDC(pDC);
}
}
struct CMenuItemContext
{
public:
CString strText;
UINT nMenuID;
UINT U;
};