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

1 ... 128 129 130 [ 131 ] 132 133 134 ... 159


. Нажатие киопк-ц -

Group Box

- C-,ROni>liinTONS

а CHECK О 1

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

3. Авюматчески вызывается функция SelectionChangcd

том случае buiion ID = ID 2

4. Выполнение команды switch - case

ScleclionChaiiged(inl bulton ID) выбор ID 2


smlch (but j case ID lcssagcBox( Bulton I , case ID 2:;McssageBox( Bullon 2 , case ID 3; McssageBox( Bulton 3 ,

!! );break: !!! );break: >!! );break:

case m C; MessagcBoxCCheck box , !.! );

5. Эга функция аызыпается

MessageBoxCBulloii 2 , !!! );


Рис. 9.29. Работа с группами кнопок

#include <owl\radiobut.h>

#include <owl\groupbox.h>

#include group.h

#define ID G 200

class my app : public TApplication

{ public:

my app() : TApplicationQ { }



protected:

virtual void InitMainWindow(void); }; class my win : public TWindow { public:

my win{); protected:

TGroupBox *my group; void prow (UINT buttonJD); DECLARE RESPONSE TABLE(my win); }; DEFINE RESP0NSE TABLE1(my win,TWindow)

EV CHILD NOTIFY ALL CODES(ID G,prow), END RESPONSE TABLE; my win::my win () : TWindow(0,0,0) { my group = new TGroupBox (this,ID G, GROUP BUTTONS-,25,25,200,100); new TCheckBox (this,ID C, CHECK ,40,60,70,20,my group); new TRadioButton (this,ID 1, V,140,55,40,20,my group); new TRadioButton (this,ID 2, 2 ,140,75,40,20,my group); new TRadioButton {this,ID 3, 3 ,140,95,40,20,my group);

void my win :: prow (UINT buttonJD) { switch{button ID)

{ case ID 1: MessageBox( Button 1 , !!! ); break;

case ID 2: MessageBox( Button 2 , !!! ); break;

case ID 3: MessageBox( Button 3 , !!! ); break;

case 1D C: MessageBox( Check box , !!! ); } }

void my app::lnitMainWindow(void)

{SetMainWindow(new TFrameWindow(0, Group box ,new

my win));}

int OwlMain(int, char**)

{ return my app().Run(); }

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



EV CHILD NOTIFY ALL CODES. Это макро вызывает компонент-функцию (отклика) с именем prow.

9.5.4. Вывод статического текста (static text control)

Текст является статическим, если его нельзя легко и быстро изменить. Работа с таким текстом поддерживается объектами класса TStatic, который наследуется из класса TControl. Рассмотрим простую программу: #include <owl\applicat.h> #include <owl\framewin.h> #include <owl\static.h> class my app : public TApplication { public:

my app() : TApplicationQ {} protected:

virtual void InitMainWindow(void); }; class my win : public TWindow { public:

my winQ; protected:

TStatic* my static; }; my win::my win () : TWindow(0,0,0) {

new TStatic (this,-1, Default static ,200,10,200,15,50); my static = new TStatic (this,-1, SS CENTER ,200,50,200,15,50); my static->Attr.Style =

(my static->Attr.Style & ~SS LEFT) SS CENTER; my static = new TStatic (this,-1, SS RIGHT ,200,80,200,15,50); my static->Attr.Style =

(my static->Attr.Style & ~SS LEFT) SS RIGHT; new TStatic (this,-1, V SS BLACKFRAME V ,200,110,200,15,50); my static =

new TStatic (this,-1, SS BLACKFRAME ,200,140,200,15,50); my static->Attr.Style =

(my static->Attr.Style & ~SS LEFT) SS BLACKFRAME;



1 ... 128 129 130 [ 131 ] 132 133 134 ... 159

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