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