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


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


#include <owl\framewin.h>

/*Отображаемые на  графике даяние*/

int data[10]={0,20,15,36,50,45,50,70,85,100); /*Константы, описывающие размера изображения*/

const radius=4;//Радиус точек графика

const dx=2Q;//Шаг по X

const margins=10;//Поля графика

const X=dx*9; // Ширина графика из 10 точек

const Y=100;//Высота графика

const XBorder=X+2*margins;/7Высота рамки вокруг графика const YBorder=Y+2*margins;//Ширина рамки вокруг графика /*Объекты классов положения и размеров*/

TSize size(radius*2,radius*2);//Квадрат для рисования точек графика TPoint X0Y0(30,10);//Верхний левый угол рамки относительно окна приложения TPoint XmYm=X0Y0.OffsetBy(XBorder,YBorder);//Правый нижний угол рамки TRect border(X0Y0,XmYm);//Прямоугольник рамки TRect graph=border.InflatedBy(-margins,-margins);//Прямоугольник графика


232                                                                                                                                  Глава 26

/*Класс приложения,  производный от TApplication   (ради InitMainWindow)*/

class  MyApp:public  TApplication{ public:

void InitMainWindow();//Замещаем функцию

InitMainWindow };

/*Класс главного окнапроизводный от TFrameWindov   (ряди Paint) */ class MyWindow:public TFrameWindow{ public:

MyWindow(TWindow*parent,char  far*title):TFrameWindow(parent,title){ Attr.X=0;Attr.Y=0; Attr.W=245;Attr.H=200; }

void Paint(TDC&,bool,TRect&);//Переопределяем функцию Paint };

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

SetMainWindow(new MyWindow(0,"Программа  26-2")); }

/*Замещенная функция Paint ()*/ void MyWindow::Paint(TDC&dc,bool,TRect&){ int  i;//Переменная циклов

char  ticks[10][2];//Массив цифр под осью X TPoint р; //Текущая координата для рисования рисок dc.Rectangle(border);//Рисуем рамку for(i=0;i<=9;i++){//В цикле по  10 точкам

p=graph.BottomLeft()+=i*dx;//Текущая координата  верхних концов рисок dc.MoveTo(p); / / В цикле перемещаемся по верхним концам рисок dc.LineTo(p.OffsetBy(0,margins));//и рисуем риски вниз до рамки wsprintf(ticks[i],"%d",i);//Преобразуем цифры в  символы dc.TextOut(p.OffsetBy(-3,margins+3),ticks[i]);//Выводим цифры под осью }




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



Книжный магазин