Изменения меню

Несколько функций позволяют изменять меню после загрузки или создания. Эти изменения могут включать в себя добавление или удаление элементов меню и модификации существующих пунктов меню.

Чтобы добавить элемент меню, используйте функцию InsertMenuItem . Чтобы изменить атрибуты существующего пункта меню можно использовать функцию SetMenuItemInfo . Параметр lpmii указывает на структуру MENUITEMINFO , которая содержит новые атрибуты и определяет, какие атрибуты для изменения. Атрибуты элемента меню включают тип, государства, идентификатор, подменю, точечные рисунки, данные элемента и текст.

Старые функции AppendMenu и InsertMenu также может использоваться для добавления элементов меню, но новые приложения должны использовать InsertMenuItem. Функция AppendMenu добавляет элемент меню в конец меню или подменю; Функция InsertMenu вставляет элемент меню в указанной позиции в меню или подменю. Обе эти функции позволяют атрибуты пункт меню, чтобы указать, включая того, является ли элемент меню включено, инвалидов, серые, проверенных или неограниченный.

Чтобы изменить внешний вид или атрибуты существующего пункта меню, используйте функцию ModifyMenu . К примеру текстовую строку или растровых пункт меню может быть включена, инвалидов, серые, проверенных или снят. ModifyMenu функция заменяет указанного пункта меню новый элемент.

Для получения сведений о пункта меню, используйте функцию GetMenuItemInfo . Параметр lpmii указывает на структуру MENUITEMINFO , которая определяет атрибуты для извлечения и получает их текущие значения.

Для удаления пункта меню из меню, используйте функцию DeleteMenu или RemoveMenu . Если исключить пункт открывает подменю, DeleteMenu удаляет связанные подменю, отказавшись от меню ручки и память, используемую в подменю. RemoveMenu функция удаляет элемент меню, но если пункт открывает подменю, функция не разрушает подменю или его ручки, позволяя подменю для повторного использования.

Для перерисовки панели меню после изменения меню в строке меню, используйте функцию DrawMenuBar . В противном случае изменения не появится до тех пор, пока система перерисовывает окно-владелец.

Index