(ДобавитьМеню)
Функция AppendMenu добавляет в конец определяемой строки меню, "выскакивающего" меню, подменю или контекстного меню новый пункт. Вы можете использовать эту функцию, чтобы определить содержание, внешний вид и характеристики пункта меню.
Функция AppendMenu была заменена функцией InsertMenuItem. Вы можете все еще использовать AppendMenu, в том случае, если Вы не нуждаетесь в какой-либо из расширенных функций InsertMenuItem.
Синтаксис
BOOL AppendMenu(
HMENU hMenu, // дескриптор меню, который будет изменен
UINT uFlags, // флажки пункта меню
UINT uIDNewItem, // идентификатор пункта меню или дескриптор "выскакивающего" меню
// или подменю
LPCTSTR lpNewItem // пункт контекстного меню
);
Параметры
hMenu
Идентифицирует строку меню, "выскакивающее" меню, подменю или контекстное меню, которое будет изменено.
uFlags
Определяет флажки, которые управляют внешним видом и характеристиками нового пункта меню. Этот параметр может быть комбинация значений, перечисленных в разделе Замечаний ниже.
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 - Содержит указатель на строку с символом нуля в конце.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - не ноль.
Если функция не выполняет задачу, величина возвращаемого значения - ноль. Чтобы получать расширенные данные об ошибках, вызовите 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_DISABLED, MF_ENABLED и MF_GRAYED
MF_BITMAP, MF_STRING и MF_OWNERDRAW
MF_MENUBARBREAK и MF_MENUBREAK
MF_CHECKED и MF_UNCHECKED
Смотри также
CreateMenu, DeleteMenu, DestroyMenu, DrawMenuBar, InsertMenu, InsertMenuItem, ModifyMenu, RemoveMenu, SetMenuItemBitmaps
Размещение и совместимость AppendMenu
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Не имеется