DialogEx

Функция DialogEx выводит на экран диалог, для обработки которого можно задать функцию-обработчик.
int WINAPI DialogEx(
  int PluginNumber,
  int X1,
  int Y1,
  int X2,
  int Y2,
  const char *HelpTopic,
  struct FarDialogItem *Item,
  int ItemsNumber,
  DWORD Reserved,
  DWORD Flags,
  FARWINDOWPROC DlgProc,
  LONG_PTR Param
);

Параметры

PluginNumber
Номер плагина. Его вы получаете в функции SetStartupInfo.
X1, Y1, X2, Y2
Геометрия диалога. Задайте эти координаты непосредственно или воспользуйтесь формулой "Width x Height" - для этого установите X1 и Y1 в -1, при этом X2 - ширина и Y2 - высота диалога. В последнем случае при выводе на экран диалог будет автоматически центрироваться. Параметры X2 и Y2 не могут быть меньше нуля.
HelpTopic
Тема подсказки связанная с данным диалогом. Если подсказка не используется, то установите этот параметр в NULL.
Item
Указатель на массив структур FarDialogItem. Каждая структура описывает пункт диалога.
ItemsNumber
Количество элементов массива FarDialogItem.
Reserved
Зарезервировано. Должно быть рано 0.
Flags
Набор флагов, уточняющих некоторые параметры диалога. Может быть комбинацией следующих значений (перечисление FARDIALOGFLAGS):
ФлагОписание
FDLG_WARNING Задает для диалога цветовую схему "Предупреждение".
FDLG_SMALLDIALOG Позволяет создавать диалоги с уменьшенным размером рамки. Для таких диалогов при отрисовке разделительных линий (DIF_SEPARATOR) предполагается нулевой отступ между границей диалога и окружающей его двойной рамкой.
FDLG_NODRAWSHADOW Не рисовать тень диалога.
FDLG_NODRAWPANEL Не рисовать поле диалога.
DlgProc
Указатель на функцию-обработчик диалогового окна типа FARWINDOWPROC.
Param
Данные, которые обработчик диалога получит в сообщении DN_INITDIALOG

Возвращаемое значение

Эта функция возвращает -1, если пользователь прервал диалог, или номер выбранного диалогового пункта (номер элемента массива Item, в примере этот факт выделен)

Замечания

  1. FAR перед созданием диалога преобразует элементы Item во внутреннее представление. После завершения работы диалога массив элементов Item корректируется с учетом изменений, произошедших в процессе работы пользователя с этим диалогом.
  2. Начиная с версии 1.71 build 2451 "маленькие" диалоги (флаг FDLG_SMALLDIALOG) рисуются с тенью. Чтобы запретить рисовать тень в таких диалога, укажите флаг FDLG_NODRAWSHADOW.

Пример

  int ExitCode=Info.DialogEx(Info.ModuleNumber,
                  -1,-1,76,10,
                  "TempCfg",DialogItems,
                  sizeof(DialogItems)/sizeof(DialogItems[0]),
                  0,0,
                  DlgProc,0);
  if (ExitCode != 7)
    return(FALSE);
Смотрите также:
Dialog, DefDlgProc, SendDlgMessage, сервисные функции, Message, InitDialogItems