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

1 ... 139 140 141 [ 142 ] 143 144 145 ... 159


где ilaco - файл с графическим изображением иконки (его можно создать с помощью инструмента Resource Workshop).

Предположим, нам необходимо перемещать иконку по экрану, тогда можно, например, задать следующую функцию: void my win :: EvTimer(UlNT) { dc = new TClientDC(*this);

ic = new Tlcon(GetModule() -> Loadlcon( NEWJCON )); dc -> Drawlcon(x++,y++,*ic); вычерчивание иконки if(x>500) x=y=0; if(y>800) x=y=0;

delete ic; delete dc;

Здесь функция TIcon позволяет сконструировать новую иконку из существующей иконки с заданным дескриптором. Этот дескриптор возвращается функцией TModule::LoadIcon. Указатель на объект класса TIcon можно объявить так: protected:

TIcon *ic;

Теперь фрагмент 2 будет содержать только одну строку: NEWJCON ICON il.ico

9.6.2. Использование инструмента Resource Workshop

Ресурсы - это специальные компоненты окон, к которым относятся:

ускорители, позволяющие определять и использовать активные клавищи (hot Iceys);

битовые карты, позволяющие задавать различные графические рисунки на экране;

♦ курсоры (различной формы);

♦ диалоговые окна, содержащие различные средства управления;

4- шрифты (различной формы);

иконки (маленькие графические картинки);

меню, позволяющие выбирать действия из набора ранее определенных действий;



таблицы строк, содержащие наборы строк, которые можно использовать, например, для различных подсказок;

4- ресурсы, определенные пользователем.

Инструмент Resource Workshop дает возможность создавать необходимые ресурсы, используя технику визуального программирования (манипулятор мышь и различные графические компоненты, отображаемые на экране). Файл ресурсов *.гс включается в проект программы (файл *.ide). Он содержит текстовое описание ресурсов и информацию о подключаемых графических файлах (с битовыми матрицами рисунков и т.п.). Описание и работа с различными ресурсами довольно подробно рассмотрены в [8].

9.6.3. Создание и использование диалоговых окон

Диалоговое окно можно использовать как главное окно и как окно-ребенок Рассмотрим первый пример:

#include <owl\applicat.h> #include <owl\framewin.h> #include <owl\dialog.h> #define MY DLG 100 class my app : public TApplication { public:

niy app() : TApp!ication() {}

void InitMainWindowO; }; class my dlg : public TDialog TDialog - это базовый класс { public: для диалоговых окон

y dlg(TWindow* parent, TReslD Resid)

: TDialog(parent, ResId), TWindow(parent) {} protected:

void PressOKO;

DECLARE RESPONSE TABLE(my dlg); }; DEFlNE RESPONSE TABLE1(my dlg,TDialog)

EV COMMAND(IDOK,PressOK), END RESPONSE TABLE; void my dlg::PressOK()



{ Parent -> SendMessage(WM CLOSE); }

void my app :: InitMainWindow(void)

{ SetMainWindow{new TFrameWindow{0, my win ,

new my dlg(0,MY DLG))); }

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

Конструктор класса TFrameWindow устанавливает объект my dlg, обслуживающий рабочую область нашего главного окна. Функция PressOK будет вызвана после нажатия клавиши ОК в окне диалога (это окно можно создать с помощью инструмента Resource Workshop). Функция PressOK посылает сообщение WM CLOSE окну-родителю. В результате программа будет завершена. Здесь при создании ресурса окно диалога должно иметь атрибут Child.

Вторая программа демонстрирует использование диалогового окна как окна-ребенка:

#include <owl\applicat.h> #include <owl\framewin.h> #include <owl\dialog.h> #define MY DLG 100 class my app : public TApplication { public:

пУ-ЭРрО : TApplicationO {}

void InitMainWindowO; }; class my dlg : public TDialog { public:

y dlg(TWindow* parent, TResID Resid)

: TDialog(parent, ResId), TWindow(parent) {} protected:

void EvRButtonDown(UINT,TPoint&);

DECLARE RESPONSE TABLE(my dlg); }; DEFINE RESP0NSE TABLE1(my dlg,TDialog)

EV WM RBUTTONDOWN, END RESPONSE TABLE; void my dlg::EvRButtonDown(UlNT,TPoint&) { MessageBox( my dlg ); }



1 ... 139 140 141 [ 142 ] 143 144 145 ... 159

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