DI_TEXT
Элемент диалога
DI_TEXT описывает статическую текстовую строку. В понятиях WinAPI это управляющий элемент STATIC.
struct FarDialogItem
{
enum FARDIALOGITEMTYPES Type = DI_TEXT
intptr_t X1 = X1
intptr_t Y1 = Y
intptr_t X2 = X2
intptr_t Y2 = Y (равен значению Y1)
const wchar_t *Mask = Mask
FARDIALOGITEMFLAGS Flags = Flags
const wchar_t *Data = выводимый текст
};
Внимание!
- Приведено схематичное изображение структуры; полное описание структуры см. здесь.
Mask
Поле используется только с флагом DIF_SEPARATORUSER, может быть
NULL, или
указывать на строку, содержащую набор из трех символов, описывающих формируемую разделительную линию.Флаги
Для элемента
DI_TEXT имеют значения следующие флаги:
| Флаг | Описание |
|---|---|
| DIF_BOXCOLOR | текст будет иметь цвет рамок (COL_DIALOGBOX или COL_WARNDIALOGBOX) |
| DIF_CENTERGROUP | центрирование двух текстовых строк с одинаковой вертикальной позицией (параметр X1 игнорируется) |
| DIF_SEPARATOR | горизонтальный разделитель диалога (одинарная линия); координата X1 не используется для случая, когда Data пустая строка;если Data не пустая строка, то она также будет отрисована (для вывода строки будет использована координата X1); |
| DIF_SEPARATOR2 | горизонтальный разделитель диалога (двойная линия); координата X1 не используется для случая, когда Data пустая строка;если Data не пустая строка, то она также будет отрисована (для вывода строки будет использована координата X1); |
| DIF_SEPARATORUSER | горизонтальный разделитель диалога (формат линии указан в Mask); должны быть указаны обе координаты X1 и X2 |
| DIF_SHOWAMPERSAND | показывать в текстовой строке амперсанд не используя его для определения горячей клавиши |
| DIF_CENTERTEXT | выравнивать текст по центру относительно координат X1 и X2 |
| DIF_RIGHTTEXT | выравнивать текст по правому краю относительно координат X1 и X2 |
| DIF_WORDWRAP | усекает очередное слово в тексте элемента, если оно не вмещается по ширине, учитываются все координаты элемента X1,X2,Y1,Y2 |
События
| Событие | Описание |
|---|---|
| DN_DRAWDLGITEM | начало отрисовки текстовой строки |
| DN_CTLCOLORDLGITEM | запрос цветовых атрибутов для отрисовки; Param2:
|
| DN_CONTROLINPUT | "кликнули" клавишей мыши |
| DN_HOTKEY | горячая клавиша (Alt+Символ) |
Замечания
- Хотя координата
Y2в Dialog API не используется, но для нормальной работы в будущих версиях Far Manager желательно корректно заполнить значение этого поля. Укажите то же значение координаты, что иY1. - Если указан флаг DIF_SEPARATORUSER, то координаты
X1иX2должны быть обязательно указаны, в противном случае действие флага не будет иметь действия. - Если указан флаг DIF_SEPARATORUSER, то в поле
MaskFar Manager ожидает 3 символа "Лево-Середина-Право". Недостающие (до 3-х) символы для такой разделительной лини будут содержать пробелы. - Если указан флаг DIF_CENTERTEXT, то координата
X2должна быть обязательно указана, в противном случае действие флага не будет иметь действия. - Если не указан флаг DIF_CENTERTEXT, то Far Manager самостоятельно перерасчитает координаты
X2иY2, исходя из размера строки и размера диалога. - Если элемент в массиве управляющих элементов стоит первым, то консольное окно Far Manager будет содержать заголовок "выводимый текст".
- Если в тексте элемента
DI_TEXTимеется "горячая клавиша" (HotKey) и не выставлен флаг DIF_SHOWAMPERSAND, то при нажатии в диалоге Alt+Символ клавиатурный фокус ввода перейдёт на следующий элемент, который может иметь фокус ввода
Смотрите также: