DI_RADIOBUTTON

Элемент диалога DI_RADIOBUTTON описывает селекторную кнопку (Radio Button). Также он называется кнопкой с зависимой фиксацией. Похож на CheckBox, за исключением того, что, если у первого из несколько идущих подряд подобных элементов установлен флаг DIF_GROUP, то они являются взаимоисключающими: если одна кнопка включена, другие обязательно выключены.
struct FarDialogItem
{
  int Type          = DI_RADIOBUTTON
  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

Определяет состояние элемента - отмечен или нет.

Флаги

Для элемента DI_RADIOBUTTON имеют значения следующие флаги:
ФлагОписание
DIF_SETCOLOR определить цвет элемента (младший байт параметра Flags должен содержать атрибут текста кнопки)
DIF_GROUP группировка последовательно объявленных селекторных кнопок (укажите этот флаг для первого элемента в группе).
DIF_MOVESELECT изменить выбор внутри группы при изменении фокуса ввода; также элемент будет отображаться без ограничительных круглых скобок (пример - диалог выбора цвета в FAR Manager - Options|Colors).
DIF_CENTERGROUP центрирование идущих подряд переключателей с одинаковой вертикальной позицией (параметр X игнорируется)
DIF_DISABLE Элемент является недоступным.
DIF_NOFOCUS Управляющий элемент не получает клавиатурный фокус ввода.
DIF_SHOWAMPERSAND показывать в заголовке рамки амперсанд не используя его для определения горячей клавиши

События

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

Замечания

Хотя координаты X2 и Y2 в Dialog API 1.0 не используется, но для нормальной работы в будущих версиях FAR желательно корректно заполнить значения этих полей.
Смотрите также:
DI_CHECKBOX, DI_BUTTON, FarDialogItem