Кнопки с зависимой и независимой фиксацией
Кнопка с независимой фиксацией (check box) обычно предоставляет пользователю возможность выбора из двух состояний. Пользователь может выбрать этот управляющий элемент, отменить его выбор
или оставить его как есть. В группе кнопок с независимой фиксацией вы можете выбрать любой из этих управляющих элементов или все
эти элементы.
Кнопки с зависимой фиксацией (radio button) используются для
выбора одной из взаимоисключающих возможностей.
Класс TCheckBox является производным от TButton и представляет кнопки с независимой фиксацией, а класс TRadioButton, представляющий кнопки с зависимой фиксацией, является производным от
TCheckBox (кнопки с независимой фиксацией и зависимой фиксацией
частично имеют общее поведение).
Кнопки с зависимой и независимой фиксацией называют иногда
блоками выбора. Такой управляющий элемент выводится на экран в
виде выбранного или невыбранного блока. Примеры этих управляющих
элементов вы можете найти в подкаталоге EXAMPLES\OWL\OWL\OWLAPI\BUTTON.
TCheckBox и TRadioButton имеют конструктор с 7 стандартными
параметрами конструктора объекта управляющего элемента (родительское окно, идентификатор ресурса, размеры и положение управляющего элемента, необязательный идентификатор библиотеки), плюс указатель на текстовую строку и указатель на групповой блок, объединяющий блоки выбора (или 0, если такого группового блока нет).
Кнопки с независимой фиксацией по умолчанию имеют стиль
BS_AUTOCHECHBOX. Это значит, что Windows обрабатывает щелчок
"мышью" на этой кнопке, переключая ее состояния. При отсутствии
такого стиля состояние кнопки требуется устанавливать вручную.
Кнопки с зависимой фиксацией по умолчанию имеют стиль BS_AUTORADIOBUTTON. Это значит, что Windows обрабатывает щелчок "мышью" на
этой кнопке, переключая ее состояния, отменяя выбор всех других
кнопок в группе. При отсутствии такого стиля нужно перехватывать
уведомляющие сообщение и устанавливать состояние кнопки вручную.
В некоторых случаях управлять состоянием кнопки может не
пользователь, а приложение. TCheckBox определяет несколько функций-элементов для модификации состояния кнопки с независимой фиксацией: Check, SetCheck, Uncheck, Toggle, SetState и SetStyle,
которые отменяю и устанавливают выбор кнопки, переключают ее,
подсвечивают и изменяют стиль кнопки. При использовании этих
функций для кнопки с независимой фиксацией ObjectWindows обеспечивает выбор в группе только одной кнопки.
Опрашивая блок выбора, вы можете отреагировать на его состояние. Кнопки с зависимой фиксацией имеют два состояния: выбрана
(BF_CHECKED) и не выбрана (BF_UNCHECKED). Блоки с независимой
фиксацией имеют необязательное третье состояние (BF_GRAYED). Для
опроса состояния используются функции GetCheck и GetState.