FAQ:WinAPI VCPP:удалить пункт меню
Материал из Весельчак У
Как удалить из меню пункт?
Для этого нужно знать ID пункта или его порядковый номер (индекс). Что именно использовать, указывается флагами MF_BYCOMMAND и MF_BYPOSITION.
//указатель на меню CMenu *pM = ...; //удаление по ID pM->DeleteMenu(ID_MyItem,MF_BYCOMMAND); //удаление по известному индексу //(0 - это первый сверху пункт) pM->DeleteMenu(5,MF_BYPOSITION);
Обратите внимание, что пункт, имеющий подменю (pop-up), а также разделители (separator) не имеют ID, поэтому их удалить можно только по известному индексу. Отдельно удалять вложенное меню, принадлежащее пункту pop-up, не нужно - онo удалится само.