и выведя на экран главное
Образовав и выведя на экран главное окно приложения, функция Run() вызовом функции Message-LoopO входит в цикл обработки сообщений, в котором приложение и находится до своего завершения.
Для того, чтобы можно было изменять характеристики и свойства главного окна, надо создать собственный класс главного окна (в примере 25-1 ему дано произвольное имя MyWindow), производный от библиотечного класса TFrameWindow. Класс TFrameWindow сам является производным от класса TWindow, и, таким образом, эти три класса образуют иерархическую структуру, показанную на рис. 25.4.
Класс TWindow является родоначальником ряда классов, описывающих функционирование разного рода окон (диалогов, органов управления и других), которые, естественно, наследуют возможности своего базового класса TWindow. Среди этих производных классов есть и класс окон с рамками TFrameWindow.
В класс TWindow входит большое число (около 300!) функций-членов, обеспечивающих общие черты поведения окон, назначение многих из которых нам знакомо по части II этой книги: Create(), ShowWindow(), MoveWindow(), GetClientRect(), In-validate(), SendMessage(), SetBkgndColor(), SetWindowWord() и т. д. В примере 25-1 использовалась функция SetBkgndColor(), устанавливающая цвет фона окна.
Помимо функций, в класс TWindow входит ряд данных-членов, из которых нас пока будет интересовать только структура типа TWindowAttr, которая представлена в классе TWindow данным-членом Attr. Элементы этой структуры определяют атрибуты окна, устанавливаемые во время его создания: стиль, координаты, размеры и др. В примере 25-1 с помощью элементов этой структуры устанавливаются координаты и размеры окна.
Простейшее OWL-приложение Windows 225
Создав в программе производный от TApplication класс МуАрр, мы получили возможность переопределить в нем функцию класса TApplication InitMainWindow(). Зачем это нужно? Как видно из рис. 25.3, в этой функции вызовом функции SetMainWindow() создается безымянный экземпляр класса TFrameWindow, к которому и обратиться-то нельзя. Нам нужно заменить его экземпляром производного от него класса My Window, с функциями и данными которого мы сможем работать. В замещенной функции InitMainWindow() выполняется в сущности то же, что было предусмотрено в исходной функции, но в нужном нам варианте:
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий