|
Программирование >> Программирование на языке c++
TCheckBox(TWindow* parent, int Id, const char far* title, int X, int y, int w, int h, TGroupBox* group, TModule* module=0); Bee параметры конструктора за исключением group были рассмотрены выше. Параметр group - это указатель на объект, описывающий группу кнопок, к которой отнесена данная триггерная кнопка. Если триггерная кнопка не включается в группу, то этот параметр принимает значение NULL. После запуска программы на выполнение на экране появляются три триггерные кнопки. Они по-разному расположены на экране, что задается соответствующими атрибутами. Триггерная кнопка имеет следующие значения атрибутов, заданные по умолчанию: WS CHILD WS VISIBLE WS TABSTOP I BS AUTOCHECKBOX. Для того чтобы объединить несколько атрибутов в единственном значении переменной Attr.Style, используются логические операции с битами. Таким образом в программе были изменены некоторые атрибуты, заданные по умолчанию. Выражение Checkl -> Attr.Style &= ~BS AUTOCHECKBOX; удаляет атрибут BS AUTOCHECKBOX из переменной Attr.Style. Этот атрибут специфицирует триггерную кнопку с именем, записанным справа от кнопки. Выражение ~BS AUTOCHECKBOX (обратите внимание на операцию ~ языка C/C++) инвертирует значение двоичного вектора, представляющего код атрибута BS AUTOCHECKBOX. После этого только один бит в двоичном векторе, задающий атрибут BS AUTOCHECKBOX, будет иметь значение 0. Следующая логическая операция (&=) сбрасывает соответствуюпщй бит в интегрированном значении переменной Attr.Style. В результате атрибут BS AUTOCHECKBOX будет удален. Следующее выражение: Check1->Attr.Style = WS BORDER BS AUT03STATE; добавляет внешнюю прямоугольную границу для первой кнопки и назначает ей три состояния. Выражение Check2->Attr.Style = BS LEFTTEXT; задает вывод имени второй кнопки слева от самой кнопки (рис. 9.25). Другие значения атрибутов можно найти в соответствующих руководствах по программированию. Вы можете изменить состояние кнопки my butl, если нажмете (выберете) ее. Существуют три состояния кнопки: активное (checked), пассивное (unchecked) и безразличное (grayed). Когда вы выбираете кнопку my butl, появляется окно сообщений, которое индицирует состояние кнопки my but2 (Checked или Unchecked). Если Вы выберете вторую кнопку, то окно сообщений индицирует текущее состояние первой кнопки (Checked, Unchecked или Grayed). Если Вы выберете третью кнопку, то либо устанавливается состояние grayed первой кнопки (если состояние третьей кнопки - unchecked), либо отображается текущее состояние третьей кнопки (т. е. выводится текст I am in the checked state ). Эти действия поясняются на рис. 9.26. В программе были использованы две новые функции. Первая из них имеет следующее описание: Inline UINT GetCheckO const; Она возвращает текущее состояние триггерной кнопки, представленное следующими константами: Граница (см. атриб)ты) Выбор (см. функциЕо EmiblcKBHandlcr)
Такое расположспис .шдается а ipii6yraMM Рис. 9.25. Работа с триггерными кнопками BF CHECKED - активное состояние; BF UNCHECKED - пассивное состояние; BF GRAYED - безразличное состояние. Вторая функция имеет следующее описание: void SetCheck(WORD check); Она устанавливает кнопку в состояние, заданное в виде параметра checlc (этот параметр может принимать одно из EV COMMAND(CKECKID.1, HaiuLB3), EV COMMAND(CHECK lD2, HanJ B2j, EV COM MAND(CH ECK IDl, Нлш! В 1), проверка состояния ripoBqKa и вынод юкупкго состояния кнопки my but2 проверка состояния Проверка и вывод текущею состояния кнопки my bul 1 Вьшод собственного текущего состояния или установка состоя)1ИЯ кнопки m\ bul 1 Рис. 9.26. Иллюстрация возможных действий в программе
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |