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 :
|
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; } }
Смотрите также: