пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

MFC-функції побудови криволінійних об’єктів.

Все криволинейные функции, а в их состав мы отнесем Arc (), Ellipse () Pie (), используют понятие базового прямоугольника. Базовый прямоугольник ограничивается координатами верхнего левого (UpX, UpY) и нижнего правого (LowX, LowY) углов. Внутри базового прямогутника помещается вписан эллипс, который и является основой для построения криволинейных объектов. Прежде всего такое состояние объектов используется функцией Ellipse ():

BOOL CDC :: Ellipse (int UpX, int UpY, int LowX, int LowY);

BOOL CDC :: Ellipse (LPCRECT lpRect);

Здесь UpX, UpY, LowX, LowY - уже приведены координаты углов прямоугольника, в который вписывается эллипс. Эллипс изображается с помощью текущего пера и заполняется в стиле текущего кисти.

Функция Arc () обеспечивает построение дуги, которая строится на основе базового прямогутника. Дуга является элементом эллипса, вписанного в базовый прямоугольника. Конечные точки дуги ограничиваются двумя лучами, исходящими из центра эллипса.

BOOL CDC :: Arc (int UpX, int UpY, int LowX, int LowY,

int StartX, int StartY, int EndX, int EndY);

BOOL CDC :: Arc (LPCRECT lpRect, POINT ptStart, POINT ptEnd);

Здесь, как и ранее, UpX, UpY, LowX, LowY - координаты углов базового прямоугольника; StartX, StartY - точка направления первого ограничивающего луча, EndX, EndY - точка направления второго ограничивающего луча.

Во втором варианте lpRect содержит весь прямоугольник, а точки ptStart и ptEnd - точки направлений первого и второго ограничивающих лучей.

Следующая функция - Pie (). С ее помощью строится сектор, буду ется на основе ограничивающего прямоугольника и является частью эллипса, вписанного в прямоугольник. Сектор формируется дугой - элементом эллипса и и отрезками двух ограничивающих лучей, проведенных из центра эллипса. Внутренняя часть сектора зоповнюеться соответствии со стилем текущего кисти.

BOOL CDC :: Pie (int UpX, int UpY, int LowX, int LowY,

     int StartX, int StartY, int EndX, int EndY);

BOOL CDC :: Pie (LPCRECT lpRect, POINT ptStart, POINT ptEnd);

Параметры функции Pie () - такие же, как и в функции Arc (). Обработчик с построением эллипса, дуги и сектора приведены в примере 4.15.

Обработчик с построением эллипса, дуги и сектора

void CMainWin :: OnEllipse ()

[CRect a (50,50,150,200);

 CPen bluePen (PS_DASH, 1, RGB (0,0,255));

 CBrush lblueBrush (RGB (0,255,255));

 memDC.SelectObject (& bluePen);

 memDC.SelectObject (& lblueBrush);

 memDC.Ellipse (& a); // Эллипс

 CRect b (200,50,300,200);

 CPen mPen (PS_SOLID, 4, RGB (0,0,255));

 memDC.SelectObject (& mPen);

 CPoint p1 (250,300), p2 (150,200);

 memDC.Arc (& b, p2, p1); // Дуга

 CRect c (300,50,400,200);

 memDC.Pie (& c, p2, p1); // Сектор

 InvalidateRect (NULL);]

 


22.06.2015; 09:38
хиты: 242
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь