CMenu::InsertMenu

BOOL InsertMenu ( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );

BOOL InsertMenu ( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );

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

Ненулевое значение, если функция выполнена успешно; в противном случае 0.

Параметры

nPosition

Определяет элемент меню, перед которым должен быть вставлен новый пункт меню. Параметр nFlags может использоваться для интерпретации nPosition следующими способами:

nFlags Интерпретация nPosition
MF_BYCOMMAND Указывает, что параметр дает Идентификатор команды существующего пункта меню. Это значение по умолчанию, если ни MF_BYCOMMAND , ни MF_BYPOSITION не имеет значение.
MF_BYPOSITION Указывает, что параметр дает позицию существующего пункта меню. Первый элемент находится в позиции 0. Если nPosition имеет 1, новый пункт меню добавляется в конец меню.

nFlags

Определяет способ интерпретации nPosition и указывает сведения о состоянии нового пункта меню, когда он добавляется к меню. Список флагов, которые можно задать в разделе функции-члена AppendMenu . Чтобы задать более одного значения, используйте оператор побитового OR объединить их с флагом MF_BYCOMMAND или MF_BYPOSITION.

nIDNewItem

Указывает Идентификатор команды нового пункта меню или, если nFlags имеет значение MF_POPUP, меню ручки (HMENU) из выпадающего меню. Параметр nIDNewItem не используется (не требуется), если nFlags имеет значение MF_SEPARATOR.

lpszNewItem

Указывает содержимое нового пункта меню. nFlags может использоваться для интерпретации lpszNewItem следующими способами:

nFlags Интерпретация lpszNewItem
MF_OWNERDRAW Содержит приложение 32-разрядное значение, приложение можно использовать для поддержки дополнительные данные, связанные с пунктом меню. Это 32-разрядное значение доступной для приложения в ItemData отсутствует член структуры, от WM_MEASUREITEM и WM_DRAWITEM сообщений. Эти сообщения отправляются, когда пункт меню сначала отображается или изменении.
MF_STRING Содержит длинный указатель на строку, оканчивающуюся нулем. Это по умолчанию интерпретация.
MF_SEPARATOR LpszNewItem параметр игнорируется (не требуется).

pBmp

Указывает на объект CBitmap , который будет использоваться в качестве элемента меню.

Примечания

Вставляет новый пункт меню в позиции, указанной параметром nPosition и перемещает другие элементы меню вниз. Приложение, можно указать состояние элемента меню, установив значения в nFlags.

Изменении меню, которое находится в окне (или не отображаться окно), в приложении следует вызвать CWnd::DrawMenuBar.

Когда nIDNewItem указывает всплывающее меню, он становится частью меню, в котором оно вставляется. Если уничтожается что меню, меню, вставленные также разрушается. Меню, вставленные следует отделить от объекта CMenu , чтобы избежать конфликта.

Если актив, который развернуто несколько дочернего окна интерфейса (MDI) документа и приложения вставок, которую всплывающее меню в меню приложения MDI путем вызова этой функции и флаг MF_BYPOSITION , меню вставить одну позицию дальше влево, чем ожидалось. Это происходит потому, что меню управления активное дочернее окно MDI вставляется в первой позиции строки меню фрейма окна интерфейса MDI. Чтобы правильно разместить меню, приложение необходимо добавить 1 значение позиции, которые могли бы быть использованы. Приложение может использовать сообщение WM_MDIGETACTIVE чтобы определить ли в настоящее время активное дочернее окно развернуто.

Обзор CMenu |nbsp; Члены класса | Иерархическая схема

См. такжеnbsp;CMenu::AppendMenu, CWnd::DrawMenuBar, CMenu::SetMenuItemBitmaps, CMenu::Detach, :: InsertMenu

Index