Программирование >>  Программирование на языке c++ 

1 ... 126 127 128 [ 129 ] 130 131 132 ... 159


приведенных выше трех значений). Работа с триггерными кнопками подцерживается также с помощью других полезных функций, информацию о которых можно найти в руководствах по программированию.

9.5.2. Взаимоисключающие кнопки (radio button control)

Такие кнопки используются для выбора одной из множества взаимоисключающих операций. Только одна из заданного множества кнопок может быть в активном состоянии (selected), при этом все остальные кнопки будут в пассивном состоянии (поп selected). Для поддержки такого режима кнопки надо включить в одну группу (см. § 9.5.3). Активное состояние индицируется большой черной точкой внутри окружности, представляющей кнопку на экране дисплея. Рассмотрим пример программы, использующей взаимоисключающие кнопки (работа с ними подцерживается объектами класса TRadioButton).

#inclucle <owl\applicat.h> #include <owl\framewin.h> #include <owl\radiobut.h>

#include radio.h описание уникальных констант

для кнопок class my app : public TApplication {

public:

my app() : TApplication() { } protected:

virtual void InitMainWindow(void);

class my win : public TWindow { public:

my win(TWindow* parent=0); protected:

TRadioButton *my radio 1, *my radio 2,

*my radio 3;

void Hand R1();



void Hand R2(); void Hand R3();

DECLARE RESPONSE TABLE(my win); -

DEFINE RESP0NSE TABLE1(my win,TWindow)

EV C0MMAND(ID 1,Hand R1),

EV COMMAND(ID 2,Hand R2),

EV COMMAND(iD 3,Hand R3), END RESPONSE TABLE;

my win::my win (TWindow* parent) : TWindow(parent,0,0) { my radio 1 = new TRadioButton

(this,lD 1, 1M40,55,40,20,NULL); my radio 2 = new TRadioButton

{this,ID 2, 2 ,140,75,40,20,NULL); my radio 3 = new TRadioButton

(this,ID 3, 3M40,95,40,20,NULL); }

void my win::Hand R1()

{ MessageBoxCButton 1 is clicked ); }

void my win::Hand R2()

{ MessageBox( Button 2 is clicked ); }

void my win::Hand R3()

{ MessageBox( Button 3 is clicked ); }

void my app::lnitMainWindow(void)

{SetMainWindow(new TFrameWindow(0, Radio Button ,new

my win));}

int OwlMain(int, char**) { return my app().Run(); }

Используемый в программе конструктор класса TRadioButton описывается в следующем виде:

TRadioButton(TWindow* parent, int Id,

const char far* title, int X, int y, int w.



int h,

TGroupBox* group,

TModule* module=0); Bee параметры этого конструктора уже рассматривались выше.

Рис. 9.27 иллюстрирует все основные действия программы. Файл radio.h может быть, например, таким: #define ID 1 100

1. Выбор-

Radio Bullon

2. Появляется черная точка

Аналогичные действия будут вьтолнены при выборе первой , и третьей кнопок. При выборе новой кнопки черная точка перемещается со старой на новую кнопку

Номера кнопок

3. Активизируется этот вход

EV COMMAND(ID 2,Hand R2),

4. Выполняется эта функция

Hand r2

5. Вызывается эта функция

Mes.sagcBox( Butlon 2 is clicked );

6. На экране появляется окно сообщений

Здесь НС задан заголовок для функции MessageBox


Рис. 9.27. Работа С взаимоисключающими кнопками



1 ... 126 127 128 [ 129 ] 130 131 132 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика