Функция 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), этот флажок показывает на экране точечный рисунок рядом с пунктом меню с невыбранным состоянием. Нижеследующие группы флажков не могут использоваться вместе:
- MF_BYCOMMAND и MF_BYPOSITION
- MF_DISABLED, MF_ENABLED и MF_GRAYED
- MF_BITMAP, MF_STRING, MF_OWNERDRAW и MF_SEPARATOR
- MF_MENUBARBREAK и MF_MENUBREAK
- MF_CHECKED и MF_UNCHECKED
Windows 95/98/Me: InsertMenuW поддерживается программой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.
Смотри также
Краткий обзор Меню, AppendMenu, DeleteMenu, DrawMenuBar, InsertMenuItem, 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 |
Нет |
Замечания по платформе |
Не имеется |