FAQ:WinAPI VCPP:удалить пункт меню
Материал из Весельчак У
Версия от 14:28, 30 июля 2008; RXL (обсуждение | вклад) (Новая: ===Как удалить из меню пункт?=== Для этого нужно знать ID пункта или его порядковый номер (индекс). Что име...)
Как удалить из меню пункт?
Для этого нужно знать 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 удалится само.