легко заметить, что они различаются
Paint О
dc.TextOut(10,10,"Строка текста");//Вывод строки текста
} /*Главная функция приложения OwlMain*/
int OwlMain(int,char*[]){
MyApp* myApp=new MyApp;
return myApp->Run(); }
Обработка сообщения WM_PAINT и интерфейс GDI_____________________________ 229
Обработка сообщения WM_PAINT
Сравнивая примеры 25-1 и 26-1, легко заметить, что они различаются всего несколькими строками. К числу несущественных отличий относится изъятие из конструктора класса главного окна MyWindow строки задания цвета фона окна, в результате чего окно приложения будет иметь цвет по умолчанию, т.е. белый. Более принципиальное отличие заключается в том, что в классе MyWindow замещена открытая виртуальная функция класса TWindow Paint(), которая перешла по наследству сначала в производный от TWindow класс TFrameWindow, а оттуда в прикладной класс MyWindow. Эта функция вызывается программами OWL в ответ на приход в окно приложения сообщения WM_PAINT. Исходная функция Paint(), входящая в класс TWindow, является функцией-заглушкой: в ее определении нет не единой строки. Заместив ее в производном от TWindow классе функцией с разумным содержимым, мы получаем возможность обрабатывать в нашей программе сообщения WM_PAINT, поступающие (в данном случае) в главное окно приложения. В примере 26-1 обработка заключается в выводе в окно с помощью функции TextOut() короткой строки текста; в следующих примерах будут продемонстрированы другие средства графического интерфейса.
Функция TextOut() принадлежит классу TDC и вызывается для объекта этого класса dc (откуда взялся этот объект, будет объяснено ниже). Эта функция совпадает по наименованию и смыслу с аналогичной функцией Windows API, хотя отличается от последней набором аргументов (см. для сравнения пример 8.1 из гл. 8). В таком случае говорят, что функция OWL инкапсулирует аналогичную функцию API. Практически все основные функции API Windows инкапсулированы в библиотеке OWL, хотя способ их вызова и состав аргументов, естественно, различаются. Иногда оказывается, что требуемая функция OWL недоступна в конкретном месте программы (потому что принадлежит другому классу и объявлена в нем защищенной или даже закрытой); тогда приходится обращаться к соответствующей функции Windows API. Примеры такого рода будут приведены в дальнейшем.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий