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

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


class my win : public TWindow { public:

my win() : TWindow(0,0,0)

{ dig = new my dlg{this,MY DLG); } protected:

my dlg *dlg;

void EvRButtonDown(UINT,TPoint&);

DECLARE RESPONSE TABLE(my win); }; DEFINE RESPONSE TABLE1(my win,TWindow)

EV WM RBUTTONDOWN, END RESPONSE TABLE; void my win::EvRButtonDown(UINT,TPoint&) { dig -> ExecuteO; } вывод окна диалога void my app :: InitMainWindow(void) { SetMainWindow{new TFrameWindow(0, my win ,new

my win)); }

int OwlMain(int,char**)

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

В этой программе диалоговое окно является ребенком главного окна my win. Здесь при создании ресурса окно диалога должно иметь атрибут Popup.

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

SetCursor(GetModule(),C ID);

где С ГО - идентификатор ресурса с описанием новой формы курсора. Здесь вместо функции GetModule можно использовать функцию GetApplication (обе эти функции являются компонентами класса TWindow). Аналогичный прием создания нового курсора можно использовать и для других интерфейсных элементов.

Библиотека ObjectWindows поддерживает также работу со стандартными (ранее определенными) диалоговыми окнами, которые повторяются для разных программ (являются типовыми). Они используются для ввода данных, открытия фай-



ЛОВ вывода данных на принтер и т.п. Пример работы с некоторыми стандартными диалоговыми окнами рассмотрен в §9.6.9.

9.6.4. Создание меню для программы пользователя

Для этих целей используется инструмент Resource Workshop. Для присоединения построенного меню вызывается функция TFranieWindow::AssignMenu в теле функции InitMainWindow. Рассмотрим пример:

#include <owl\applicat.h> #include <owl\framewin.h>

#include menu.h этот файл описывает различные

константы class my app : public TApplication

{ public:

my app{) : TApplicationO {} protected:

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

public:

my winO : TWindow(0,0,0) {} protected:

virtual BOOL CanClose(void); void CMAveiro(void); void CMMinsk{void);

DECLARE RESPONSE TABLE(my win); }; DEFINE RESPONSE TABLE1(my win,TWindow)

EV COMMAND(CM AVEIRO, CMAveiro),

EV COMMAND(CM MINSK, CMMinsk), END RESPONSE TABLE; BOOL my win::CanClose(void) {

return MessageBoxCDo you want to close? , ??? , 432



MB YESNO I MBJCONQUESTION) == IDYES;

void my win;:CMAveiro{void)

MessageBoxCAveiro is a town of Portugal , PORTUGAL ,

MB OK I MBJCONEXCLAMATION);

void my win::CMMinsk(void)

MessageBox{ Minsk is the capital of Belarus , former USSR ,

MB OK I MBJCONEXCLAMATION);

void my app :: InitMainWindow(void)

MainWindow = new TFrameWindow(0, Empty Menu Program ,

new my win);

так можно подключить меню к программе

MainWindow -> AssignMenu(TReslD(town names));

int OwlMain(int, char**)

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

Файл menu.h задается, например, в таком виде:

#define CM AVEIRO 100

#define CM MINSK 101

#define town names 200

Функция TFrameWindow: :AssignMenu устанавливает значение Attr.Menu, которое будет именем созданного ресурса (идентификатором ресурса). В нашем примере меню используется для вывода различных окон с сообщениями. Текст файла ресурса *.rs будет примерно таким:

#define town names 200 описание всех констант, которые #define СМ ЕХ1Т 24310 устанавливают взаимосвязь с меню #define CM MINSK 101 и с пунктами меню (эти же констан-#define CM AVEIRO 100 ты описываются в файле menu.h) town names MENU town names - это имя меню



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

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