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


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