DI_FIXEDIT

Элемент диалога DI_FIXEDIT описывает поле ввода фиксированного размера. То же, что и DI_EDIT, но без возможности прокрутки текста.
struct FarDialogItem
{
  int Type          = DI_FIXEDIT
  int X1            = X1
  int Y1            = Y
  int X2            = X2
  int Y2            = Y (равен значению Y1)
  int Focus         = Focus
  union{
    char *History   = History
    char *Mask;     = Mask
  };
  DWORD Flags       = Flags
  int DefaultButton = DefaultButton
  char Data[512]    = редактируемый текст
};

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

Focus

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

History

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

Mask

Адрес текстовой строки с маской ввода (см. также флаг DIF_MASKEDIT). Если значение = NULL, то поле ввода не имеет маски.
"История" (флаг DIF_HISTORY) имеет более высокий приоритет, чем "Маска" (флаг DIF_MASKEDIT). Т.е. если указаны оба флага, то элемент редактирования будет иметь историю, а флаг DIF_MASKEDIT будет сброшен.

Флаги

Для элемента DI_FIXEDIT имеют значения следующие флаги:
ФлагОписание
DIF_HISTORY Позволяет вести историю редактирования для поля ввода.
DIF_MANUALADDHISTORY Строка для истории редактирования не будет автоматически добавляться в историю по завершению работы диалога.
DIF_USELASTHISTORY Начальное значение берется из истории.
DIF_MASKEDIT Поле ввода позволяет вводить значение по указанной маске.
DIF_DISABLE Элемент является недоступным.
DIF_READONLY Переводит строки редактирования в состояние "только для чтения"
DIF_SELECTONENTRY Выделить редактируемый текст при получении фокуса ввода.
DIF_NOFOCUS Управляющий элемент не получает клавиатурный фокус ввода.

События

СобытиеОписание
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_EDIT, DI_PSWEDIT, FarDialogItem