DI_CHECKBOX
Элемент диалога
DI_CHECKBOX описывает контрольный переключатель (Check Box). также он называется кнопкой с независимой фиксацией
(переключатель вкл./выкл., который может переключаться пользователем). Переключатель "включён", если у элемента поле Selected отлично от нуля.
struct FarDialogItem
{
enum FARDIALOGITEMTYPES Type = DI_CHECKBOX
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
Определяет состояние элемента - отмечен или нет.
Флаги
Для элемента
DI_CHECKBOX имеют значения следующие флаги:
| Флаг | Описание |
|---|---|
| DIF_DEFAULTBUTTON | флаг, означающий, что данный элемент диалога является "элементом по умолчанию" |
| DIF_FOCUS | определяет, что при показе диалога установить клавиатурный фокус ввода на данный элемент |
| DIF_CENTERGROUP | центрирование идущих подряд переключателей с одинаковой вертикальной позицией (параметр X игнорируется)
|
| DIF_DISABLE | элемент является недоступным |
| DIF_NOFOCUS | управляющий элемент не получает клавиатурный фокус ввода |
| DIF_3STATE | контрольный переключатель будет иметь 3 состояния: "выключен", "включён", "неопределено" |
| DIF_SHOWAMPERSAND | показывать в заголовке рамки амперсанд не используя его для определения горячей клавиши |
События
| Событие | Описание |
|---|---|
| DN_DRAWDLGITEM | начало отрисовки текстовой строки |
| DN_CTLCOLORDLGITEM | запрос цветовых атрибутов для отрисовки; Param2:
|
| DN_CONTROLINPUT | нажали клавиатурную клавишу или кликнули клавишей мыши |
| DN_HOTKEY | горячая клавиша (Alt+Символ) |
| DN_BTNCLICK | изменение состояния переключателя |
| DN_KILLFOCUS | элемент потерял фокус (при условии, что не используется флаг DIF_NOFOCUS) |
| DN_GOTFOCUS | элемент получил фокус (при условии, что не используется флаг DIF_NOFOCUS) |
Замечания
Хотя координаты
X2 и Y2 в Dialog API не используется, но для нормальной работы в будущих версиях Far Manager желательно корректно заполнить значения этих полей.
Смотрите также: