Окт 16

Внесение изменений в меню

Обычно в сложных приложениях возникает необходимость изменять меню в ходе выполнения программы. Win32 API предоставляет соответствующие функции для модификации меню и его отдельных пунктов.
Состав меню можно изменять с помощью следующих функций: AppendMenu — добавляет новый элемент в конец меню; DeleteMenu — удаляет существующий пункт меню и уничтожает его; InsertMenu — вставляет в меню новый пункт; RemoveMenu — удаляет существующий пункт меню.
Необходимо хорошо понимать, как различаются функции DeleteMenu и RemoveMenu, когда они применяются к пунктам-подменю. Функция DeleteMenu уничтожает это подменю, а функция RemoveMenu — нет.
Для пунктов меню наиболее часто применяются такие изменения, как смена символьной строки имени пункта, установка или снятие отметки, изменение статуса пункта. Функция SetMenuItemlnfo позволяет выполнять сразу несколько таких операций в одном вызове функции. Можно также использовать более конкретные функции для выполнения отдельных операций, которые приведены в следующем списке:
CheckMenuItem — управляет отметкой пунктов-флажков; CheckMenuRadioItem — управляет отметкой пунктов-переключателей; EnableMenuItem — изменяет статус пункта меню; ModifyMenu — изменяет имя пункта меню.
Некоторые из функций стоит рассмотреть более подробно.