Функция AppendMenu 

Функция AppendMenu добавляет в конец заданной строки меню, "выпадающего" меню, подменю или контекстного меню новый пункт. Вы можете использовать эту функцию, чтобы определить содержание, внешний вид и поведение пункта меню.

Синтаксис

BOOL AppendMenu(      
    HMENU hMenu,
    UINT uFlags,
    UINT_PTR uIDNewItem,
    LPCTSTR lpNewItem
); 

Параметры

hMenu

[in] Дескриптор строки меню, "выпадающего" меню, подменю или контекстное меню, которое будет изменено.

uFlags

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

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 всякий раз, когда изменяется меню, независимо от того, находится оно или нет в отображаемом окне.

Чтобы получить  клавиатурные ускорители для работы с растровыми или нарисованными пользователем (собственными) пунктами меню, владелец меню должен обработать сообщение WM_MENUCHAR. За подробной информацией обратитесь к статье Собственные меню и сообщение WM_MENUCHAR.

Следующие флажки могут быть установлены в параметре 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: AppendMenuW поддерживается программой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.

Пример

Пример смотри в статье  Добавление меню Линии и Диаграммы.

Смотри также

Краткий обзор МенюCreateMenuDeleteMenuDestroyMenuDrawMenuBarInsertMenuInsertMenuItemModifyMenuRemoveMenuSetMenuItemBitmaps

 

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

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