Сначала создается экземпляр прикладного класса
/* Замещенная функция 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;//Задаем размеры окна } };
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий