DI_BUTTON

Элемент диалога DI_BUTTON описывает кнопку (Push Button).
struct FarDialogItem
{
  int Type          = DI_BUTTON
  int X1            = X
  int Y1            = Y
  int X2            = 0 (в Dialog API 1.0 не используется)
  int Y2            = Y (равен значению Y1)
  int Focus         = Focus
  int Selected      = Selected
  DWORD Flags       = Flags
  int DefaultButton = DefaultButton
  char Data[512]    = надпись на кнопке
};

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

Focus

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

Selected

Если кнопка имеет фокус ввода, то при нажатии <Enter> это поле примет значение 1.

Флаги

Для элемента DI_BUTTON имеют значения следующие флаги:
ФлагОписание
DIF_BTNNOCLOSE Не завершать работу диалога при нажатии на кнопку.
DIF_CENTERGROUP центрирование идущих подряд кнопок с одинаковой вертикальной позицией (параметр X игнорируется)
DIF_NOBRACKETS Показывает заголовок кнопки без скобок.
DIF_SETCOLOR определить цвет элемента (младший байт параметра Flags должен содержать атрибут текста кнопки)
DIF_DISABLE Элемент является недоступным.
DIF_NOFOCUS Управляющий элемент не получает клавиатурный фокус ввода.
DIF_SHOWAMPERSAND показывать в заголовке рамки амперсанд не используя его для определения горячей клавиши

События

СобытиеОписание
DN_DRAWDLGITEM начало отрисовки текстовой строки
DN_CTLCOLORDLGITEM запрос цветовых атрибутов для отрисовки; Param2:
LoWord LoByte - текст кнопки
                (COL_WARNDIALOGBUTTON или
                 COL_DIALOGBUTTON)
LoWord HiByte - выделенный текст (highlighting text)
                (COL_WARNDIALOGHIGHLIGHTBUTTON или
                 COL_DIALOGHIGHLIGHTBUTTON)

Param2, когда кнопка в фокусе:

LoWord LoByte - текст кнопки
                (COL_WARNDIALOGSELECTEDBUTTON или
                 COL_DIALOGSELECTEDBUTTON)
LoWord HiByte - выделенный текст
                (highlighting text)
                (COL_WARNDIALOGHIGHLIGHTSELECTEDBUTTON
                или
                 COL_DIALOGHIGHLIGHTSELECTEDBUTTON)
HiWord LoByte - 0
HiWord HiByte - 0
Если используется заказной атрибут (флаг DIF_SETCOLOR), то текст кнопки (LoWord LoByte) будет тем, что указали.
DN_KEY нажали клавишу.
DN_HOTKEY горячая клавиша (Alt-Символ)
DN_MOUSECLICK "кликнули" клавишей мыши
DN_BTNCLICK нажата кнопка
DN_KILLFOCUS элемент потерял фокус (при условии, что не используется флаг DIF_NOFOCUS).
DN_GOTFOCUS элемент получил фокус (при условии, что не используется флаг DIF_NOFOCUS).

Замечания

Вся информация по структуре FarDialogItem изложена с учетом именованных объединений. Более подробно читайте в описании определения _FAR_NO_NAMELESS_UNIONS.
Смотрите также:
DI_CHECKBOX, DI_RADIOBUTTON, FarDialogItem