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