DI_FIXEDIT

Programming Far Manager plugins

DI_FIXEDIT

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

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

  • Приведено схематичное изображение структуры; полное описание структуры см. здесь.

History

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

Mask

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

Флаги

Для элемента DI_FIXEDIT имеют значения следующие флаги:
ФлагОписание
DIF_DEFAULTBUTTON флаг, означающий, что данный элемент диалога является "элементом по умолчанию"
DIF_FOCUS определяет, что при показе диалога установить клавиатурный фокус ввода на данный элемент
DIF_HISTORY позволяет вести историю редактирования для поля ввода
DIF_MANUALADDHISTORY строка для истории редактирования не будет автоматически добавляться в историю по завершению работы диалога
DIF_USELASTHISTORY начальное значение берётся из истории
DIF_MASKEDIT поле ввода позволяет вводить значение по указанной маске
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)

Замечания

Текстовый курсор после инициализации элемента - в режиме замены.

Смотрите также: