Menu
показывает меню.
intptr_t WINAPI Menu( const GUID *PluginId, const GUID *Id, intptr_t X, intptr_t Y, intptr_t MaxHeight, FARMENUFLAGS Flags, const wchar_t *Title, const wchar_t *Bottom, const wchar_t *HelpTopic, const struct FarKey *BreakKeys, intptr_t *BreakCode, const struct FarMenuItem *Item, size_t ItemsNumber );
GlobalInfo.Guid
функции GetGlobalInfoW).-1
.0
.Константа | Описание |
---|---|
FMENU_AUTOHIGHLIGHT | Если указан, то горячие клавиши будут назначены автоматически, начиная с первого пункта. |
FMENU_CHANGECONSOLETITLE | Если указан, то Far Manager изменит заголовок консоли в значение, указанное в параметре Title (если Title не пуст). |
FMENU_SHOWAMPERSAND | При показе меню не использовать амперсанды (& ) для определения горячих клавиш. |
FMENU_REVERSEAUTOHIGHLIGHT | Если указан, то горячие клавиши будут назначены автоматически, начиная с последнего пункта. |
FMENU_NONE | Нулевой флаг. |
FMENU_WRAPMODE | Если указан, то попытка перемещения курсора выше первого пункта или ниже последнего будет приводить к перемещению соответственно к последнему или к первому пункту.
Этот флаг рекомендуется ставить всегда, когда нет специальных причин его не ставить. |
FMENU_SHOWNOBOX | Меню будет выведено без рамки. |
FMENU_SHOWSHORTBOX | Рамка меню будет выведена без окружающих пробелов. |
FMENU_SHOWSINGLEBOX | Будет выведена одинарная рамка меню (по умолчанию - двойная). |
FMENU_NODRAWSHADOW | Меню будет выведено без тени. |
NULL
, если заголовок меню не нужен.NULL
, если нижняя строка меню не нужна.NULL
, если подсказка не требуется.VirtualKeyCode
должно быть равно 0.
Если вам не нужно определять такие клавиши в дополнение к стандартным (Enter, Esc и F10),установите этот параметр в NULL
.
Например, реакция на нажатие клавиши F4 в меню обрабатывается так:
int BreakCode; struct FarKey BreakKeys[] = {{VK_F4,0},{0,0}}; ExitCode=Info.Menu(&MainGUID,&MenuGUID,-1,-1,0,FMENU_WRAPMODE,GetMsg(MArcCmdTitle),GetMsg(MSelectF4),L"ArcCmd",BreakKeys,&BreakCode,MenuItems,Count); if(ExitCode>=0) { if(BreakCode == 0) // F4 pressed { GetFormatName(MenuItems[0].Text); ConfigCommands(MenuItems[0].Text,2+MenuData[ExitCode].Cmd*2); continue; } } else return FALSE;
BreakKeys
, использованного для закрытия меню, или -1
, если меню было закрыто одной из стандартных клавиш. Этот параметр может быть равным NULL
.-1
, если пользователь отменил меню, или номер выбранного элемента меню.