# 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