User and Graphics Device Interface Objects, страница 11

Таблица 6

Следующий список показывает группы флажков, которые не могут использоваться вместе:

•     MF_DISABLED, MF_ENABLED, и MF_GRAYED

•     MF_BITMAP, MF_STRING, и MF_OWNERDRAW

•     MF_MENUBARBREAK и MF_MENUBREAK

•     MF_CHECKED и MF_UNCHECKED

См. Также

CreateMenu, DeleteMenu, DestroyMenu, DrawMenuBar, InsertMenu, MF_BITMAP, MF_OWNERDRAW, ModifyMenu, RemoveMenu, SetMenuItemBitmaps

InsertMenu

Функция InsertMenu вставляет новый пункт меню в меню, перемещая другие пункты меню.

BOOL InsertMenu (

HMENU hMenu,  // дескриптор меню

UINT uPosition ,  // пункт меню , которому новый пункт меню предшествует

UINT uFlags ,       // флажки пункта меню

UINT uIDNewItem ,        // идентификатор пункта меню или всплывающий дескриптор меню

LPCTSTR lpNewItem      // содержание

);     

Параметры

hMenu

Идентифицирует меню, которое будет изменено.

uPosition

Определяет пункт меню, перед которым должен быть вставлен новый пункт меню, как определено параметром uFlags.

uFlags

Определяет флажки, которые управляют интерпретацией параметра uPosition и содержания, вида и поведения нового пункта меню. Параметр должен быть комбинацией одного из следующих требуемых значений или по крайней мере одно из значений, перечисленных в следующем разделе Замечания.

Параметр

Описание

MF_BYCOMMAND

Указывает, что параметр uPosition дает идентификатор пункта меню. Флажок MF_BYCOMMAND - значение по умолчанию, если ни MF_BYCOMMAND ни флажок MF_BYPOSITION не определен.

MF_BYPOSITION

Указывает, что параметр uPosition дает нулевую относительную позицию нового пункта меню. Если uPosition - 0xFFFFFFFF, новый пункт меню будет конкатенирован к концу меню.

Таблица 7

uIDNewItem

Определяет либо идентификатор нового пункта меню либо, если параметр uFlags имеет набор флажков MF_POPUP, дескриптор всплывающего меню.

lpNewItem

Определяет содержание нового пункта меню. Интерпретация lpNewItem зависит от того, включает ли параметр uFlags MF_BITMAP, MF_OWNERDRAW или флажок MF_STRING, следующим образом:

Параметр

 Описание

MF_BITMAP

Содержит растровый дескриптор.

MF_OWNERDRAW

Содержит 32-разрядное значение, предоставленное приложением, которое может использоваться, чтобы утвердить, что дополнительные данные касались пунктов меню. Значение находится в элементе структуры itemData, указанной параметром lparam WM_MEASURE или WM_DRAWITEM сообщения, посылаемого, когда меню создано, или его вид модифицируется.

MF_STRING

Содержит указатель на строку с нулевым символом в конце.

Таблица 8

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

В случае успешного завершения, возвращаемое значение - TRUE.

В случае неудачи, возвращаемое значение - FALSE. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.

Замечания

Приложение должно вызвать функцию DrawMenuBar всякий раз, изменяя меню,  или если меню нет в отображаемом окне.

Следующие флажки должны быть установлены в параметре uFlags: