В предыдущей главе была рассмотрена структура простейшего OWL-приложения с главным окном. Мы даже научились изменять размеры и цвет окна. Однако это окно было пусто - для того, чтобы в него что-то вывести, надо обрабатывать сообщение WM_PAINT и использовать инструменты графического интерфейса GDI. Принципы обработки сообщений Windows в OWL-прштожениях будут описаны в следующей главе; здесь же мы рассмотрим только работу с сообщением WM_PAINT и вывод на экран изображений с помощью функций GDI.
На рис. 26.1. приведен результат работы первого приложения, рассматриваемого в этой главе.
Рис. 26.1. Вывод на экран строки текста с помощью функции GDI.
//Приложение 26-1. Вывод текста в окно
//Файл 26-1.срр
#include <owl\framewin.h>
/*Класс приложения, производная от Tapplication*/
class MyApp:public TApplication{
public:
virtual void InitMainWindow(void); //Замещаем функцию InitMainWindow };
/*Класс главного окна, производный от TFrameWindow (ради Paint) */ class MyWindow:public TFrameWindow{ public:
MyWindow(TWindow*parent,const char far* title):TFrameWindow(parent,title){ Attr.X=20;Attr.Y=20; //Задаем координаты окна Attr.W=200;Attr.H=60;// Задаем размеры окна }
|
|
void Paint(TDC &,bool,TRect&); //Замещаем функцию Paint()класса TWindow };
/*Замещенная функция InitMainWindow ()*/ void MyApp::InitMainWindow(void){
MyWindow* myWin=new MyWindow(0,"Программа 26-1");
SetMainWindow(myWin);
}
/*Замещенная функция Paint ()*/ void MyWindow::Paint(TDC&dc,bool,TRect&) {//Определяем нашу функцию Paint О
dc.TextOut(10,10,"Строка текста"); //Вывод строки текста
} /*Главная функция приложения OwlMain*/
int OwlMain(int,char*[]){
MyApp* myApp=new MyApp;
return myApp->Run(); }
Обработка сообщения WM_PAINT и интерфейс GDI_____________________________ 229