Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 6


/* Замещенная функция InitMainWindow()*/

void

МуАрр::InitMainWindow(void){

MyWindow* myWin=new MyWindow(0,"Программа 25-1");//Создаем объект класса MyWindow

SetMainWindow(myWin);//Объявляем новое окно главным

}

Сначала создается экземпляр прикладного класса MyWindow с указателем на него mywin, а затем вызовом функции SetMainWindow() созданное окно объявляется главным. В процессе создания экземп­ляра класса MyWindow (т.е. вызова конструктора этого класса) конструктору передаются требуемые па­раметры, первый из которых (0) говорит о том, что у этого окна нет родителя (поскольку оно является главным), а второй представляет собой заголовок окна. Очевидно, что составить текст замещающей функции InitMainWindow можно, только изучив исходный текст замещаемой, который можно найти в файле \source\owl\applicat.cpp, содержащем исходные тексты всех функций класса TApplication.

Для того, чтобы описанный выше фрагмент работал должным образом, необходимо описать конст­руктор нашего класса MyWindow, предусмотрев в нем, разумеется, вызов конструктора базового класса TFrameWindow ради передачи в него инициализирующих параметров. Этот конструктор описан в файле bc5\include\owl\window.h следующим образом:

TFrameWindow(TWindow* parent,   const char  far  *title=0,TWindow*  clientWnd=0 bool  shrinkToClient=false,TModule* module=0);

Как видно из этого определения, при вызове конструктора в него необходимо передать только пер­вый параметр, для которого не предусмотрено значения по умолчанию, а все остальные можно не пере­давать. Однако второй параметр позволяет задать заголовок окна, поэтому конструктор TFrameWindow часто вызывается с двумя параметрами. В определении прикладного класса MyWindow

class MyWindow:public TFrameWindow{ public:

MyWindow(TWindow*parent,char  far*title):TFrameWindow(parent,title){ SetBkgndColor(COLOR_WINDOWFRAME+1);//Задаем цвет фона  окна   (серый) Attr.X=10;  Attr.Y=10;//Задаем координаты окна Attr.W=200;  Attr.H=60;//Задаем размеры окна } };




Начало  Назад  Вперед