FarMenuItem
Структура
FarMenuItem описывает один пункт меню. Массив этих структур передаётся в функцию Menu.
struct FarMenuItem
{
MENUITEMFLAGS Flags;
const wchar_t *Text;
struct FarKey AccelKey;
intptr_t UserData;
intptr_t Reserved[2];
};
Элементы
Flags
Комбинация следующих значений (тип MENUITEMFLAGS):
| Флаг | Описание |
|---|---|
| MIF_SELECTED | Признак активности пункта меню. Только один пункт может быть активным. |
| MIF_CHECKED | Признак отмеченного пункта меню. Перед текстом будет отображаться метка выбора. |
| MIF_SEPARATOR | Пункт меню отображается как разделитель. Разделитель может содержать текст, выровненный по середине. |
| MIF_DISABLE | Пункт меню недоступен. |
| MIF_GRAYED | Если флаг установлен, то пункт меню доступен в навигации, но не доступен для выбора. |
| MIF_HIDDEN | Если флаг установлен, то пункт меню не выводится на экран. |
| MIF_NONE | Нулевой флаг. |
Text
Указатель на текст пункта меню.
AccelKey
Код клавиши, структура типа FarKey, для активизации пункта меню (HotKey). Пример работы - в меню Far Manager "Commands" нажатие клавиши Ctrl+O аналогично выбору пункта "Panels On/Off".
UserData
Пользовательские данные, ассоциированные с пунктом меню. Far Manager не использует это поле.
Reserved
Зарезервированные поля, должны быть равны
0.Замечания
- В младшем слове
Flagsможно указывать код символа, который будет использоваться для отображения метки выбора. В этом случае система самостоятельно выставит флагMIF_CHECKEDдля данного пункта меню. - Если младшее слово
Flagsравно0и выставлен флагMIF_CHECKED, или если младшее словоFlagsравно1, то будет отображаться стандартная метка выбора - символ с кодом 0FBh (√) - При использовании флага
MIF_SEPARATORбез текста, компонентаTextдолжна быть проинициализирована в0, например так:struct FarMenuItem Item; Item.Flags=MIF_SEPARATOR; Item.Text=NULL;
Смотрите также: