DI_TEXT

Элемент диалога DI_TEXT описывает статическую текстовую строку. В понятиях WinAPI это управляющий элемент STATIC.
struct FarDialogItem
{
  int Type          = DI_TEXT
  int X1            = X1
  int Y1            = Y
  int X2            = X2
  int Y2            = Y (в Dialog API 1.0 не используется, должно быть равно значению Y1)
  int Focus         = 0
  int Selected      = 0
  DWORD Flags       = Flags
  int DefaultButton = 0
  char Data[512]    = выводимый текст
};

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

Флаги

Для элемента DI_TEXT имеют значения следующие флаги:
ФлагОписание
DIF_SETCOLOR определить цвет элемента (младший байт параметра Flags должен содержать атрибут выводимого текста)
DIF_BOXCOLOR текст будет иметь цвет рамок (COL_DIALOGBOX или COL_WARNDIALOGBOX)
DIF_CENTERGROUP центрирование двух текстовых строк с одинаковой вертикальной позицией (параметр X1 игнорируется)
DIF_SEPARATOR горизонтальный разделитель диалога (одинарная линия); координата X1 не используется для случая, когда Data пустая строка;
если Data не пустая строка, то она также будет отрисована (для вывода строки будет использована координата X1);
DIF_SEPARATOR2 горизонтальный разделитель диалога (двойная линия); координата X1 не используется для случая, когда Data пустая строка;
если Data не пустая строка, то она также будет отрисована (для вывода строки будет использована координата X1);
DIF_SHOWAMPERSAND показывать в текстовой строке амперсанд не используя его для определения горячей клавиши
DIF_CENTERTEXT выравнивать текст по центру относительно координат X1 и X2

События

СобытиеОписание
DN_DRAWDLGITEM начало отрисовки текстовой строки
DN_CTLCOLORDLGITEM запрос цветовых атрибутов для отрисовки; Param2:
LoWord LoByte - текст
                (COL_WARNDIALOGTEXT или
                 COL_DIALOGTEXT
                при выставленном флаге DIF_BOXCOLOR:
                COL_WARNDIALOGBOX или
                COL_DIALOGBOX)
LoWord HiByte - выделенный текст
                (highlighting text)
                (COL_WARNDIALOGHIGHLIGHTTEXT или
                 COL_DIALOGHIGHLIGHTTEXT)
HiWord LoByte - 0 (не используется)
HiWord HiByte - 0 (не используется)
Если используется заказной атрибут (флаг DIF_SETCOLOR), то текст (LoWord LoByte) будет тем, что указали.
DN_MOUSECLICK "кликнули" клавишей мыши
DN_HOTKEY горячая клавиша (Alt-Символ)

Замечания

  1. Хотя координата Y2 в Dialog API 1.0 не используется, но для нормальной работы в будущих версиях FAR желательно корректно заполнить значение этого поля. Укажите то же значение координаты, что и Y1.
  2. Если указан флаг DIF_CENTERTEXT, то координата X2 должна быть обязательно указана, в противном случае действие флага не будет иметь действия.
  3. Если не указан флаг DIF_CENTERTEXT, то FAR самостоятельно перерасчитает координаты X2 и Y2, исходя из размера строки и размера диалога.
  4. Если элемент в массиве управляющих элементов стоит первым, то консольное окно FAR Manager будет содержать заголовок "выводимый текст".
  5. Если в тексте элемента DI_TEXT имеется "горячая клавиша" (HotKey) и не выставлен флаг DIF_SHOWAMPERSAND, то при нажатии в диалоге Alt-Символ клавиатурный фокус ввода перейдет на следующий элемент, который может иметь фокус ввода
Смотрите также:
DI_VTEXT, FarDialogItem