CMenu::ModifyMenu
Изменяет существующий пункт меню в позиции, указанной nPosition.
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL
);
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem,
const CBitmap* pBmp
);
Параметры
nPosition
Определяет пункта меню, которое нужно изменить. Параметр nFlags может использоваться для интерпретации nPosition следующими способами:nFlags
Интерпретация nPosition
MF_BYCOMMAND
Указывает, что параметр содержит идентификатор команды существующего пункта меню. Это значение по умолчанию, если ни MF_BYCOMMAND ни MF_BYPOSITION установлены.
MF_BYPOSITION
Указывает, что данный параметр предоставляет позицию существующего пункта меню. Первый элемент в позиции 0.
nFlags
Определяет способ интерпретации nPosition и предоставляет сведения об изменениях, к пункту меню. Список флагов, которые могут быть установлены, см. в разделе AppendMenu функции-члена.nIDNewItem
Определяет или идентификатор команды измененного пункта меню или, если nFlags установлено в MF_POPUP, то дескриптор меню (HMENU) раскрывающегося меню. Параметр nIDNewItem игнорировать (), если nFlags установлено в MF_SEPARATOR.lpszNewItem
Определяет содержимое нового пункта меню. Параметр nFlags может использоваться для интерпретации lpszNewItem следующими способами:nFlags
Интерпретация lpszNewItem
MF_OWNERDRAW
Содержит приложение- предоставленное 32 разрядное значение, приложение может использовать для поддержки дополнительных данных, связанных с пунктом меню. Это значение 32 разрядное доступны для приложения при обработке MF_MEASUREITEM и MF_DRAWITEM.
MF_STRING
Содержит длинный указатель на null- завершенной строке или в CString.
MF_SEPARATOR
Параметр lpszNewItem игнорировать ().
pBmp
Указывает на CBitmap объект, которое будет использоваться в качестве пункт меню.
Возвращаемое значение
Ненулевой если функция успешно; в противном случае – значение 0.
Заметки
Приложение определяет новое состояние пункта меню значениями параметра в nFlags. Если эта функция заменяет всплывающее меню, связанное с пунктом меню, она уничтожает старый всплывающее меню и освобождает память, используемую всплывающим меню.
При nIDNewItem задает контекстное меню меню, становится частью меню, в котором оно вставляется. Если меню удалено, то вставленные меню также будет удалено. Inserted меню должно быть наконец удалено из объекта CMenu во избежание конфликта.
При изменен меню, находящаяся в окне (отображается ли окно), приложение должно вызвать CWnd::DrawMenuBar. Чтобы изменить атрибуты существующих пунктов меню, он намного быстрее на использование функций-членов CheckMenuItem и EnableMenuItem.
Пример
См. пример для CMenu::InsertMenu.
Требования
Header: afxwin.h