谁能详细解释一下CMenu::ModifyMenu函数 ?
我在自绘制菜单时需要修改菜单,
void CMenuEx::InitMenuItems(bool bFirst)
{
int iMaxItems = GetMenuItemCount();
for(int i = 0; i < iMaxItems; i++)
{
CString strMenu;
GetMenuString(i, strMenu, MF_BYPOSITION); //得到菜单项标题
MenuItem* pItem = new MenuItem;
pItem->iIndex = i;
pItem->hIcon = NULL;
pItem->bFirstMenu = bFirst;
strcpy(pItem->strCaption,strMenu);
ModifyMenu(GetMenuItemID(i), MF_BYCOMMAND | MF_OWNERDRAW ,GetMenuItemID(i), (char*)pItem);
if(GetSubMenu(i))
{
CMenuEx* pSubMenu = new CMenuEx;
pSubMenu->Attach(GetSubMenu(i)->GetSafeHmenu());
pSubMenu->InitMenuItems();//false
}
}
}
是弹出菜单就显示有问题,其余是好的.