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 удалится само.