Поделиться через


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

См. также

Ссылки

Класс CMenu

Диаграмма иерархии

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::CheckMenuItem

CWnd::DrawMenuBar

CMenu::EnableMenuItem

CMenu::SetMenuItemBitmaps

CMenu::Detach

ModifyMenu