DI_EDIT

Элемент диалога DI_EDIT описывает поле ввода.
struct FarDialogItem
{
  int Type             = DI_EDIT
  int X1               = X1
  int Y1               = Y
  int X2               = X2
  int Y2               = Y (равен значению Y1)
  int Focus            = Focus
  char *History        = History
  DWORD Flags          = Flags
  int DefaultButton    = DefaultButton
  union {
    char Data[512];    = редактируемый текст (без флага DIF_VAREDIT)
    struct {
      DWORD PtrFlags;  = дополнительные флаги (в Dialog API 1.0 не используется)
      int   PtrLength; = размер данных, на которые указывает PtrData
      char *PtrData;   = указатель на пользовательский буфер редактирования
      char  PtrTail[1];= "остаток" - доступ к оставшейся части Data
    } Ptr;             = редактируемый текст (с флагом DIF_VAREDIT)
  };
};

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

Focus

Определяет имеет ли поле ввода клавиатурный фокус ввода.

History

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

Флаги

Для элемента DI_EDIT имеют значения следующие флаги:
ФлагОписание
DIF_EDITOR Последовательно определенные поля ввода группируются в редактор с возможностью вставки и удаления строк.
DIF_HISTORY Позволяет вести историю редактирования для поля ввода.
DIF_MANUALADDHISTORY Строка для истории редактирования не будет автоматически добавляться в историю по завершению работы диалога.
DIF_USELASTHISTORY Начальное значение берется из истории.
DIF_EDITEXPAND "Расширять" переменные среды.
DIF_DISABLE Элемент является недоступным.
DIF_READONLY Переводит строки редактирования в состояние "только для чтения"
DIF_SELECTONENTRY Выделить редактируемый текст при получении фокуса ввода.
DIF_NOFOCUS Управляющий элемент не получает клавиатурный фокус ввода.
DIF_VAREDIT Использовать указатель на собственный буфер редактирования (FarDialogItem.Ptr.*) вместо FarDialogItem.Data.

События

СобытиеОписание
DN_DRAWDLGITEM начало отрисовки текстовой строки
DN_CTLCOLORDLGITEM запрос цветовых атрибутов для отрисовки; Param2:
LoWord LoByte - редактируемый текст
                (COL_WARNDIALOGEDIT или
                 COL_DIALOGEDIT)
LoWord HiByte - выделенный текст
                (COL_DIALOGEDITSELECTED)
HiWord LoByte - неизмененный текст (UnChanched)
                (COL_DIALOGEDITUNCHANGED)
HiWord HiByte - цвет символа для History
                (COL_DIALOGTEXT)
DN_KEY нажали клавишу.
DN_MOUSECLICK "кликнули" клавишей мыши
DN_EDITCHANGE текст изменен
DN_KILLFOCUS элемент потерял фокус (при условии, что не используется флаг DIF_NOFOCUS).
DN_GOTFOCUS элемент получил фокус (при условии, что не используется флаг DIF_NOFOCUS).
Смотрите также:
DI_PSWEDIT, DI_FIXEDIT, FarDialogItem