DI_BUTTON

Элемент диалога DI_BUTTON описывает кнопку (Push Button).
struct FarDialogItem
{
  enum FARDIALOGITEMTYPES Type = DI_BUTTON
  intptr_t X1                  = X
  intptr_t Y1                  = Y
  intptr_t X2                  = 0
  intptr_t Y2                  = Y (равен значению Y1)
  intptr_t Selected            = Selected
  FARDIALOGITEMFLAGS Flags     = Flags
  const wchar_t *Data          = надпись на кнопке
};

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

Selected

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

Флаги

Для элемента DI_BUTTON имеют значения следующие флаги:
ФлагОписание
DIF_DEFAULTBUTTON флаг, означающий, что данный элемент диалога является "элементом по умолчанию"
DIF_FOCUS определяет, что при показе диалога установить клавиатурный фокус ввода на данный элемент
DIF_BTNNOCLOSE не завершать работу диалога при нажатии на кнопку
DIF_CENTERGROUP центрирование идущих подряд кнопок с одинаковой вертикальной позицией (параметр X игнорируется)
DIF_NOBRACKETS показывает заголовок кнопки без скобок
DIF_DISABLE элемент является недоступным
DIF_NOFOCUS управляющий элемент не получает клавиатурный фокус ввода
DIF_SETSHIELD размещает на кнопке аналог "иконки со щитом" Microsoft UAC
DIF_SHOWAMPERSAND показывать в заголовке рамки амперсанд не используя его для определения горячей клавиши

События

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

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

Colors[0] - текст кнопки
                (COL_WARNDIALOGSELECTEDBUTTON или COL_DIALOGSELECTEDBUTTON)
Colors[1] - выделенный текст (highlighting text)
                (COL_WARNDIALOGHIGHLIGHTSELECTEDBUTTON или COL_DIALOGHIGHLIGHTSELECTEDBUTTON)
Colors[2] - 0 (не используется)
Colors[3] - 0 (не используется)
DN_CONTROLINPUT нажали клавиатурную клавишу или кликнули клавишей мыши
DN_HOTKEY горячая клавиша (Alt+Символ)
DN_BTNCLICK нажата кнопка
DN_KILLFOCUS элемент потерял фокус (при условии, что не используется флаг DIF_NOFOCUS)
DN_GOTFOCUS элемент получил фокус (при условии, что не используется флаг DIF_NOFOCUS)

Замечания

Смотрите также:
DI_CHECKBOX, DI_RADIOBUTTON, FarDialogItem