Функция InsertMenu


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

Обратите внимание! на то, что функция InsertMenu была заменена функцией InsertMenuItem. Вы можете все еще использовать InsertMenu, в том случае, если нет необходимости в каком-либо из дополнительных свойств функции  InsertMenuItem.

Синтаксис

BOOL InsertMenu(
    HMENU hMenu,
    UINT uPosition,
    UINT uFlags,
    PTR uIDNewItem,
    LPCTSTR lpNewItem
); 

Параметры

hMenu

[in] Дескриптор меню, которое измениться.

uPosition

[in] Устанавливает пункт меню, перед  которым должен быть вставлен новый пункт меню , как обусловлено параметром uFlags .

uFlags

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

Значение Предназначение
MF_BYCOMMAND Указывает, что uPosition дает идентификатор пункта меню. Если не установлен ни флажок MF_BYCOMMAND, ни флажок MF_BYPOSITION, то флажок MF_BYCOMMAND является  заданным по умолчанию. 
MF_BYPOSITION Указывает, что uPosition дает отсчитываемую от нуля относительную позицию пункта меню. Если параметр uPosition равен - (минус)1, новый пункт меню добавлен в конец  меню. 

uIDNewItem

[in] Устанавливает или идентификатор нового пункта меню или, если параметр uFlags  имеет установку флажка MF_POPUP, дескриптор "выпадающего" меню, или подменю.

lpNewItem

[in] Устанавливает содержание нового пункта меню. Интерпретация lpNewItem зависит от того, включает ли параметр uFlags  в себя флажок MF_BITMAP, MF_OWNERDRAW или  MF_STRING, как указано ниже .
 Значение Предназначение
MF_BITMAP Содержит дескриптор точечного рисунка. 
MF_OWNERDRAW Содержит предоставляемое приложением значение, которое может использоваться для сохранения дополнительных данных, связанного с ним пункта меню. Это значение находится в члене itemData  структуры, на которую указывает параметр lParam отправленного сообщения WM_MEASUREITEM или WM_DRAWITEM, когда пункт меню создается, или модифицируется его внешний вид. 
MF_STRING Содержит указатель на символьную строку с нулем в конце (значение по умолчанию). 

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

Если функция завершается успешно, величина возвращаемого значения - не нуль.

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

Замечания

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

Ниже следующий перечень описывает флажки, которые могут быть  установлены в параметре uFlags .

Значение Описание
MF_BITMAP Использует точечный рисунок (значок) как пункт меню. Параметр lpNewItem  содержит дескриптор значка. 
MF_CHECKED Размещает "галочку" рядом с пунктом меню. Если приложение предоставляет точечные рисунки "галочки " (см. SetMenuItemBitmaps), этот флажок показывает на экране значок "галочки " рядом с пунктом меню. 
MF_DISABLED Отключает пункт меню так, чтобы он не мог выбираться, но не окрашивает его в серый цвет (не делает недоступным). 
MF_ENABLED Включает в работу пункт меню так, чтобы он мог выбираться и восстанавливает его из недоступного состояния. 
MF_GRAYED Отключает пункт меню и окрашивает его в серый цвет (делает недоступным), так что он не может быть выбран. 
MF_MENUBARBREAK Для строки меню выполняет такую же функцию  как и флажок MF_MENUBREAK . Для "выпадающего" меню, подменю или контекстного меню, новый столбец отделяется от старого  вертикальной линией. 
MF_MENUBREAK Размещает пункт в новую строку (для строк меню) или в новом столбце (для "выпадающего" меню, подменю, или контекстного меню), не отделяя столбцы. 
MF_OWNERDRAW Устанавливает, что (пункт - нарисованный пользователем (собственный) пункт. Прежде, чем меню отображается впервые, окно, которое владеет меню, получает WM_MEASUREITEM сообщение, чтобы извлечь ширину и высоту пункта меню. Сообщение WM_DRAWITEM  затем отправляется в оконную процедуру окна владельца всякий раз, когда внешний вид пункта меню должен быть модифицирован. 
MF_POPUP Устанавливает, что пункт меню открывает "выпадающее" меню или подменю. Параметр uIDNewItem  определяет дескриптор "выпадающего" меню или подменю. Этот флажок используется для добавления имени меню в строке меню или пункту меню, который открывает подменю типа  "выпадающего" меню, подменю или контекстного меню. 
MF_SEPARATOR Чертит горизонтальную разделительную линию. Этот флажок используется только в "выпадающем" меню, подменю или контекстном меню. Линия не может быть недоступной, отключенной или выделенной. Параметры lpNewItem и uIDNewItem  игнорируются. 
MF_STRING Устанавливает, что пункт меню - текстовая строка; параметр lpNewItem  - указатель на строку. 
MF_UNCHECKED Не помещает "галочку" рядом с пунктом меню (значение по умолчанию). Если приложение предоставляет значки  "галочки " (см. функцию SetMenuItemBitmaps), этот флажок показывает на экране точечный рисунок рядом с пунктом меню с невыбранным состоянием. 

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

Windows 95/98/Me: InsertMenuW поддерживается программой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.

Смотри также

Краткий обзор МенюAppendMenu,  DeleteMenu, DrawMenuBarInsertMenuItem, ModifyMenu,  SetMenuItemBitmaps, WM_DRAWITEM, WM_MEASUREITEM

Размещение и совместимость InsertMenu

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz