# 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`.

### Замечания

1. В младшем слове `Flags` можно указывать код символа, который будет использоваться для отображения метки выбора. В этом случае система самостоятельно выставит флаг `MIF_CHECKED` для данного пункта меню.
2. Если младшее слово `Flags` равно `0` и выставлен флаг `MIF_CHECKED`, или если младшее слово `Flags` равно `1`, то будет отображаться стандартная метка выбора - символ с кодом 0FBh (`√`)
3. При использовании флага `MIF_SEPARATOR` без текста, компонента `Text` должна быть проинициализирована в `0`, например так:

       struct FarMenuItem Item;
       Item.Flags=MIF_SEPARATOR;
       Item.Text=NULL;

Смотрите также:
структуры