ModifyMenu

ModifyMenu функция изменяет существующий элемент меню. Эта функция используется для указания содержимое, внешний вид и поведение элемента меню.

Функция ModifyMenu была заменена функцией SetMenuItemInfo . Можно использовать ModifyMenu, однако, если не требуется каких-либо расширенных функций SetMenuItemInfo.

(BOOL ModifyMenu HMENU  hMnu, / / обработать менюUINTuPosition, / / меню пункт изменитьUINTuFlags, / / флаги пункт менюUINTuIDNewItem, / / меню пункт идентификатор или обрабатывать вниз / / меню или подменюLPCTSTRlpNewItem / / меню пункт содержание);
 

Параметры

hMnu
Дескриптор меню, чтобы изменить.
uPosition
Определяет пункт меню, чтобы изменить, как определено в параметре uFlags.
uFlags
Указывает флаги, которые управляют интерпретации параметра uPosition и содержание, внешний вид и поведение элемента меню. Этот параметр должен быть одной из следующих требуемые значения и по крайней мере одно из значений, перечисленных в следующем разделе "Примечания".
Значение Значение
MF_BYCOMMAND Указывает, что параметр uPosition дает идентификатор элемента меню. Флаг MF_BYCOMMAND является значением по умолчанию, если указано ни MF_BYCOMMAND, ни MF_BYPOSITION флаг.
MF_BYPOSITION Указывает, что параметр uPosition дает с нуля относительное положение элемента меню.

uIDNewItem
Указывает идентификатор элемента изменение меню или, если параметр uFlags имеет MF_POPUP флаг установлен, маркер в раскрывающемся меню или подменю.
lpNewItem
Указатель содержания пункта изменения меню. Интерпретация этого параметра зависит от того, включает ли параметр uFlags MF_BITMAP, MF_OWNERDRAW или MF_STRING флаг.
Значение Значение
MF_BITMAP Содержит дескриптор точечного рисунка.
MF_OWNERDRAW Содержит 32-разрядное значение, указанное приложение, которое используется для поддержки дополнительных данных, связанных с элементом меню. Значение находится в ItemData отсутствует члена структуры, который указывает параметр lparam WM_MEASUREITEM или WM_DRAWITEM сообщений, отправленных при создании элемента меню или обновлении его внешний вид.
MF_STRING Содержит указатель на ограниченную значением null строку (по умолчанию).

Возвращаемые значения

Если функция выполнена успешно, возвращаемое значение не равно нулю.

Если вызов функции был неуспешен, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Примечания

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

Для того чтобы сочетания клавиш для работы с точечный рисунок или пункты меню, рисуемого владельцем владелец меню необходимо обработать сообщение WM_MENUCHAR. Дополнительную информацию смотрите меню Owner-Drawn и WM_MENUCHAR сообщение.

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

В следующем списке описываются флаги, которые могут быть заданы в параметре uFlags:

Значение Значение
MF_BITMAP Использует растровое изображение в качестве пункта меню. Параметр lpNewItem содержит дескриптор точечного.
MF_BYCOMMAND Указывает, что параметр uPosition указывает идентификатор элемента меню (по умолчанию).
MF_BYPOSITION Указывает, что параметр uPosition указывает с нуля относительное положение нового пункта меню.
MF_CHECKED Помещает флажок рядом с элементом. Если ваше приложение содержит флажок рисунки (см. SetMenuItemBitmaps функция), этот флаг отображается флажками растровое изображение рядом с элементом меню.
MF_DISABLED Отключает элемент меню таким образом, чтобы он не может быть выбран, но этот флаг не Грэй его.
MF_ENABLED Позволяет активировать пункт меню может быть выбран и восстанавливает его из состояния неактивна.
MF_GRAYED Отключает элемент меню и grays, так что он не может быть выбран.
MF_MENUBARBREAK Функции же, как MF_MENUBREAK флаг для строки меню. Для меню, вложенного меню или контекстное меню новый столбец отделяется от старого столбца вертикальной линией.
MF_MENUBREAK Помещает элемент на новой линии (для строки меню) или в новом столбце (для раскрывающегося меню, вложенного меню или контекстное меню), без разделения столбцов.
MF_OWNERDRAW Указывает, что элемент является владельцем элемента. До того, как в первый раз появится меню, окно, которому принадлежит меню получает сообщение WM_MEASUREITEM получить ширину и высоту элемента меню. WM_DRAWITEM затем отправляется сообщение процедуре окна окна-владельца всякий раз, когда необходимо обновить внешний вид элемента меню.
MF_POPUP Указывает, что пункт меню открывает раскрывающееся меню или подменю. Параметр uIDNewItem указывает дескриптор в раскрывающемся меню или подменю. Этот флаг используется для добавления имени меню в строке меню или пункт меню, который открывает подменю, в раскрывающемся меню, вложенного меню или контекстное меню.
MF_SEPARATOR Рисует горизонтальную разделительную линию. Этот флаг используется только в раскрывающемся меню, вложенного меню или контекстное меню. Линия отображается серым цветом, отключена или невозможно выделены. Параметры lpNewItem и uIDNewItem игнорируются.
MF_STRING Указывает, что пункт меню является текстовой строкой; параметр lpNewItem указывает на строку.
MF_UNCHECKED Не установить флажок рядом с пунктом (по умолчанию). Если ваше приложение передает флажок рисунки (см. SetMenuItemBitmaps функция), этот флаг отображается неконтролируемого растровое изображение рядом с элементом меню.

Нельзя совместно использовать следующие группы флагов:

Родственные слова

Меню Обзор функций меню, AppendMenu, CheckMenuItem, DrawMenuBar, EnableMenuItem, SetMenuItemBitmaps, SetMenuItemInfo, WM_DRAWITEM, WM_MEASUREITEM

Index