Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 69

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 63 64 65 66 67 68 < 69 > 70 71 72 73 74 75 .. 173 >> Следующая

Рис. 19.11. Координаты, переданные в функцию Ellipse
Вызвав функцию СОС: -.Chord:. можно нарисовать хорду.
BOOL Chora
(int xl, int yl, // леЕый верхний угол ограничивающего
/7 прямоугольника; int х2, int у2, // правый нижний угол ограничивающего
// прямоугольника; int хЗ, int уЗ, // начальная точка хорды; int. х4, int у4); // конечная точка хорды
Хорда задает фигуру, образованную пересечением эллипса и сегмента линии. Первые две пары координат, передаваемые в функцию Chord, описывают прямоугольник, ограничивающий эллипс; третья — начальную точку хорды; четвертая — конечную точку. Как и в функции Arc, заданная хордой фигура рисуется из начальной точки в конечную против часовой стрелки, если для изменения направления не вызвана функция SetArcDirection, а заданные начальная и конечная точки не лежат на эллипсе (рис. I9.12).
(х4,у4)
(х1,у1)
(х2,у2)
Рис. 19.12. Координаты, переданные в функцию chord
Для рисования сектора вызывается функция CDC: : Pie.
BOOL Pie
(int xl, int yl, // левый верхний угол ограничивающего
// прямоугольника; int х2, int у2, // правый нижний угол ограничивающего
// прямоугольника; int хЗ, int уЗ, // начальная точка сектора; int х4, int у4); // конечная точка сектора
Координаты, передаваемые в функцию Pie, аналогичны координатам, передаваемым в функции Arc и Chord (рис. 19.13).
Функция CDC: : Polygon рисует многоугольник, состоящий из двух или более вершин, соединенных линиями. Например, следующие строки рисуют треугольник.
POINT Points [3];
Points [0] . X = 20;
Points [0] •У = 10;
Points [1] . X = 30;
Points [1] •У = 30;
Points [2] . X = 10;
Points [2] •У = 30;
pDC->Polygon (Points, 3);
Первый параметр, передаваемый в функцию Polygon, является указателем на массив point. Элементы этого массива описывают координаты вершин. Второй параметр показывает число вершин, которые необходимо соединить. В отличие от функции Polyline, рассмотренной в предыдущем разделе, функция Polygon всегда создает замкнутую фигуру (кроме случая, когда соединяемых вершин всего две). Чтобы фигура имела замкнутый контур, при необходимости проводится линия из последней вершины в первую. В приведенном примере функция Polygon соединяет первую точку (Point [0]) со второй, вторую с третьей и третью с первой, образуя треугольник. Если этот массив точек передать функции Polyline, то она соединит первую точку со второй, а вторую точку с третьей.
В одном вызове функции CDC:PolyPolygon можно нарисовать несколько отдельных многоугольников. Можно вызвать функцию cdc :: PolyPolygon, чтобы изменить режим заполнения многоугольника, влияющий на способ заполнения сложных многоугольников. Подробности смотрите в документации на эти две функции.
Для каждой из замкнутых фигур, рассмотренных в этом параграфе, границы рисуются с помощью текущего пера, а внутренние области заполняются текущей кистью. Обратите внимание: при рисовании замкнутой фигуры пером, которому присвоен стиль PS_INSIDEFRAME, граница рисуется внутри ограничивающего прямоугольника. Если нужно нарисовать замкнутую фигуру без закрашивания (т.е. оставить внутреннюю область без изменений), то вызывается функция CDC: : SelectStockObject, позволяющая выбрать объект null_brush перед рисованием.
Текущий режим рисования, установленный при вызове функции SetROP2, влияет на способ формирования границ и внутренних областей замкнутых фигур так же, как на рисование линий (см. параграф "Режим рисования линий").
(х4,у4)
(Х1.У1)
(Х2,у2)
Рис. 19.13. Координаты, переданные в функцию Pie
Режим и цвет фона, заданные вызовами CDC: : SetBkMode и CDC: : SetBkColor, влияют на фигуры с замкнутыми контурами следующим образом. Если выбрано перо для прерывистой линии (созданное в стиле PS_DASH, PS_dot, PS_DASHDOT или PS_DASHDOTDOT), то режим и цвет фона управляют рисованием пробелов в границах фигур. В режиме opaque пробелы заполняются цветом фона, а в режиме transparent — не заполняются. Если используется кисть со штриховкой (созданная вызовом CreateHatchBrush), то режим и цвет фона управляют заполнением пробелов между линиями штриховки, т.е. в режиме OPAQUE пробелы закрашиваются цветом фона, а в режиме transparent пробелы не закрашиваются.
Примечание
Если используется кисть с узорами (созданная вызовом CreateHatchBrush или createPatternBrush), то для выравнивания заполняющего узора вызывают функцию
setBrushOrg класса cdc.
Другие функции рисования
В табл. 19.7 приведено несколько дополнительных функций рисования, принадлежащих классу CDC.
Таблица 19.7. Дополнительные функции рисования.
Функция Цель
DrawFocusRect Рисует границу прямоугольника, используя пунктирную
линию, без заливки внутренней области. Граница рисуется цветом, инверсным цвету экрана. Повторный вызов функции с этими же координатами удаляет границу
Drawlcon Рисует значок
ExtFloodFill Заполняет область, ограниченную данным цветом, используя текущую кисть. Можно закрасить область, заполненную указанным цветом
Окончание табл. 19.7
Предыдущая << 1 .. 63 64 65 66 67 68 < 69 > 70 71 72 73 74 75 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100