DI_EDIT

Элемент диалога DI_EDIT описывает поле ввода.
struct FarDialogItem
{
  enum FARDIALOGITEMTYPES Type = DI_EDIT
  intptr_t X1                  = X1
  intptr_t Y1                  = Y
  intptr_t X2                  = X2
  intptr_t Y2                  = Y (равен значению Y1)
  const wchar_t *History       = History
  FARDIALOGITEMFLAGS Flags     = Flags
  const wchar_t *Data          = редактируемый текст
};

Внимание! Внимание!

History

Адрес текстовой строки, которая будет использоваться как внутреннее название истории редактирования (см. также флаг DIF_HISTORY). Если значение равно NULL, то поле ввода не имеет истории.

Флаги

Для элемента DI_EDIT имеют значения следующие флаги:
ФлагОписание
DIF_DEFAULTBUTTON флаг, означающий, что данный элемент диалога является "элементом по умолчанию"
DIF_FOCUS определяет, что при показе диалога установить клавиатурный фокус ввода на данный элемент
DIF_EDITOR последовательно определённые поля ввода группируются в редактор с возможностью вставки и удаления строк
DIF_HISTORY позволяет вести историю редактирования для поля ввода
DIF_MANUALADDHISTORY строка для истории редактирования не будет автоматически добавляться в историю по завершению работы диалога
DIF_USELASTHISTORY начальное значение берётся из истории
DIF_EDITEXPAND "расширять" переменные среды
DIF_EDITPATH строка ввода будет содержать имена реальных файловых объектов
DIF_DISABLE элемент является недоступным
DIF_READONLY переводит строки редактирования в состояние "только для чтения"
DIF_SELECTONENTRY выделить редактируемый текст при получении фокуса ввода
DIF_NOFOCUS управляющий элемент не получает клавиатурный фокус ввода

События

СобытиеОписание
DN_DRAWDLGITEM начало отрисовки текстовой строки
DN_CTLCOLORDLGITEM запрос цветовых атрибутов для отрисовки; Param2:
Colors[0] - редактируемый текст
                (COL_WARNDIALOGEDIT или COL_DIALOGEDIT)
Colors[1] - выделенный текст
                (COL_DIALOGEDITSELECTED)
Colors[2] - неизмененный текст (UnChanged)
                (COL_DIALOGEDITUNCHANGED)
Colors[3] - цвет символа для History
                (COL_DIALOGTEXT)
DN_CONTROLINPUT нажали клавиатурную клавишу или кликнули клавишей мыши
DN_EDITCHANGE текст изменён
DN_KILLFOCUS элемент потерял фокус (при условии, что не используется флаг DIF_NOFOCUS)
DN_GOTFOCUS элемент получил фокус (при условии, что не используется флаг DIF_NOFOCUS)

Замечания

Для определения, является ли текущий элемент диалога строкой ввода, в АПИ есть функция IsEdit():
static __inline BOOL IsEdit(enum FARDIALOGITEMTYPES Type)
{
  switch (Type)
  {
    case DI_EDIT:
    case DI_FIXEDIT:
    case DI_PSWEDIT:
    case DI_COMBOBOX:
      return TRUE;
    default:
      return FALSE;
  }
}
Смотрите также:
DI_PSWEDIT, DI_FIXEDIT, FarDialogItem