Структура POPUPMENUITEM
Содержит сведения об элементах меню в ресурсе меню, открывающем меню или подменю. Определение структуры, приведенное здесь, предназначено только для объяснения; он отсутствует ни в одном стандартном файле заголовка.
Синтаксис
typedef struct {
DWORD type;
DWORD state;
DWORD id;
WORD resInfo;
szOrOrd menuText;
} POPUPMENUITEM;
Члены
-
type
-
Тип: DWORD
-
Описывает элемент меню. Некоторые значения, которые могут быть у этого элемента, включают значения, показанные в списке ниже.
Помимо показанных значений, этот элемент также может быть сочетанием значений типов, перечисленных с элементом fType структуры MENUITEMINFO . Значения типов начинаются с MFT_. Чтобы использовать эти предопределенные значения типа MFT_*, добавьте в RC-файл следующую инструкцию:
#include "winuser.h"
Значение Значение - MF_END
- 0x80
Пункт меню является последним в меню; флаг используется системой внутри системы. - MF_POPUP
- 0x01
Пункт меню открывает меню или подменю; флаг используется системой внутри системы. -
state
-
Тип: DWORD
-
Описывает элемент меню. Этот элемент может быть сочетанием значений состояния, перечисленных вместе с элементом dwState структуры MENUITEMINFO . Значения состояния начинаются с MFS_. Чтобы использовать эти предопределенные значения состояния MFS_*, добавьте в RC-файл следующую инструкцию:
#include "winuser.h"
-
идентификатор
-
Тип: DWORD
-
Числовое выражение, определяющее пункт меню, передаваемый в WM_COMMAND сообщении.
-
resInfo
-
Тип: WORD
-
Набор битовых флагов, указывающих тип пункта меню. Этот элемент может иметь одно из следующих значений.
Значение Значение - MFR_END
- 0x80
Элемент меню является последним в этом подменю или ресурсе меню; этот флаг используется системой внутри системы. - MFR_POPUP
- 0x01
Пункт меню открывает меню или подменю; флаг используется системой внутри системы. -
menuText
-
Тип: szOrOrd
-
Строка Юникода, завершающаяся нулевым значением, которая содержит текст для этого пункта меню. Фиксированное ограничение на размер этой строки отсутствует.
Комментарии
Для каждого пункта меню, открывающего меню или подменю, существует одна структура POPUPMENUITEM . Определите этот тип пункта меню, задав для элемента типазначение MF_POPUP и задав бит MFR_POPUP в элементе resInfo значение 0x0001. В этом случае окончательные данные, записанные в ресурс RT_MENU для меню или подменю, — это структура MENUHELPID . MENUHELPID содержит числовое выражение, определяющее меню во время обработки WM_HELP .
Кроме того, за каждой структурой POPUPMENUITEM, за которой в элементе resInfo задан бит MFR_POPUP, следует структура MENUHELPID и дополнительное количество структур POPUPMENUITEM, по одной для каждого пункта меню в этом подменю. Последняя структура POPUPMENUITEM в подменю будет иметь MFR_END бит, заданный в элементе resInfo . Чтобы найти конец ресурса, найдите соответствующий MFR_END для каждого MFR_POPUP плюс еще один MFR_END , соответствующий самому внешнему набору пунктов меню.
Укажите последний пункт меню, задав для элемента типазначение MF_END. Так как вы можете вложить подменю, может существовать несколько уровней MF_END. В этих случаях элементы меню являются последовательными.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
См. также раздел
-
Справочные материалы
-
Основные понятия