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

1 ... 123 124 125 [ 126 ] 127 128 129 ... 159


подключение средств меню к главному окну;

конструирование окна статуса;

> конструирование окна управления (содержащего, например, иконки с картинками);

подключение окон статуса и управления к главному окну;

> изменение атрибутов главного окна;

> подключение к главному окну таблицы ускорителей (таблицы активных клавиш);

установка новой иконки, которая используется вместо заданной по умолчанию иконки, когда размер главного окна будет минимизирован. Фрагмент 6. Здесь описывается главная функция программы с именем OwlMain. У нее два аргумента, которые имеют то же назначение, что и первые два аргумента функции main в программах на языках C/C++.

9.5. Средства управления

Базовым классом для всех средств управления (управляющих объектов) является TControl, который наследуется из класса TWindow. Рис. 9.23 поясняет 5 главных задач, которые являются общими для всех управляющих объектов [12]. Рассмотрим пример, показывающий решение перечисленных задач для таких средств управления, как простейшие кнопки (в комментариях к программе цифрами указаны номера задач на рис. 9.23).

#include <owl\button.ii> #include <owl\applicat.ii> #include <owl\framewin.ii>

#define BUTTONJDI 101 Эти три описания идентифика-#define BUTrON ID2 102 торов кнопок следует включить #define BUTT0NJD3 103 в специальный файл заголовка class DrawButton : public TWindow

public:

DrawButton(TWindow* parent = 0);



Компоненты-данные

КомпонешЫ функцни

!) Чтобы сконструировать \прав.1яющий объект.

Ро;иггсл1,скос окно

<

имн класса >правлення -*\ка 1а1ель на упран:1Я101цин обьект

KoHCip\KiOp

дпилиел1Акоиж

2) KoHCipyKTop >правля101це1 о ()б1А:кта можно т.гшап, в копсрукгорс mnqxlieiicnoro обьекча ро.чигеля

\ ка la ель на \ правля1оти11 (>бьекг - new консп)>кго1) >П1)а11ЛЯ10Н1С1 о о6ьека

newкопсг[)>х10р )прав.тяюпю1 о оЙ1,ек1а


Пример: Конс1р\ктор управляюгцего объекта

Юм-выбор средства

I >правления


3) Вы МОЖС1С тмеиить наследуемые из класса TWindow азрнбу1Ъ1 (исполыунте яля этих пелен логические операции с битами)

Можно выпоганггь допогалггелъную шнишалазанию в ф>11кции Setup Window (здесь не следует забывать о вызове ф\1гкцин SetupWindow для базового класса)

создаст q)eACTBa >правления ребенка

5) Взанмодейсчвисс управляющими объектами осуществляется через уникальный ш1ен1ификатор (ID), коюрый определяется в npoipaMMe и задастся в качестве ojmoro из параморов конст]>укз ору

Рис. 9.23. Задачи, которые являются общими для всех управляющих

объектов



TButton *Button1; 1

void Hand B1(); 5

void Hand B2(); 5

void Hand B3{); 5

protected:

void SetupWindow(void); 4

DECLARE RESPONSE TABLE(DrawButton); 5

DEFINE RESP0NSE TABLE1 (DrawButtonJWindow) 5 EV C0MMAND(BUTT0NJD1,Hand B1), 5

EV COMMAND(BUTTON ID2,Hand B2), 5

EV COMMAND(BUTTON ID3,Hand B3), 5

END RESPONSE TABLE; 5

DrawButton::DrawButton(TWindow* parent) : TWindow(parent,0,0)

Buttoni = new TButton(this3UTTON ID1, my but1 ,100,

50,80,30); 2

значение TRUE последнего параметра задает активную кнопку

new TButton(this,BUTTONJD2, my but2 , 100,150,80,

30,TRUE); 2 new TButton(this,BUTTON ID3, my but3 ,100,250,80,30);

Button1->Attr.Style = WS BORDER; 3

void DrawButton::Hand B1() 5

{ MessageBoxCButton 1 is pressed ); } 5

void DrawButton::Hand B2() 5

{ MessageBox( Button 2 is pressed ); } 5

void DrawButton::Hand B3() 5

{ MessageBox( Button 3 is pressed ); } 5

void DrawButton::SetupWindow() 4

{ 4

TWindow::SetupWindow(); 4



1 ... 123 124 125 [ 126 ] 127 128 129 ... 159

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