|
Программирование >> Программирование на языке c++
. Нажатие киопк-ц -
. 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;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |