Если же при регистрации был задан флаг CS_CLASSDC, то все окна этого класса имеют один контекст и для любого окна восстанавливаются те значения параметров, которые были в контексте перед выполнением последней функции Rel easeDCC).
Вывод графических примитивов Прямоугольник со скругленными углами Рисование отрезка прямой, прямоугольника и эллипса было рассмотрено ранее. Прямоугольник со скругленными углами выводится при помощи следующей функции:
BOOL RoundRectCHDC hDC. int nXl. int nYl. int nX2. int nY2. int X. int Y) В этой функции для прорисовки закруглений на углах используются эллипсы. Два дополнительных параметра, х и у, задают ширину и высоту этих угловых эллипсов.
В следующих разделах главы описываются функции, позволяющие отображать более сложные фигуры.
Функции отображения ломаной линии и многоугольника имеют одинаковый набор параметров:
BOOL PolyLine (HDC hDC. CONST POINT *lpPoints. int cPoints) BOOL Polygon (HDC hDC. CONST POINT *lpPoints. int nPoints)
В этом определении параметр 1 pPoi nts является массивом структур типа POINT, содержащим координаты вершин ломаной или прямоугольника, а параметр cPoi nts позволяет указывать количество вершин. Функция PolyLineO рисует линию от первой точки ко второй, от второй - к третьей и далее по всем точкам массива. В отличие от LineToC), эта функция не использует и не изменяет текущую позицию графического указателя. Например, следующий фрагмент кода рисует фигуру в форме буквы М при помощи функции PolyLine():
POINT Points [5] - {{50. 50}.{50.150}.{100.100}.{150.50}.{150.150}}; PolyLine(hDC.Points.5);
Функция PolygonC) автоматически соединяет последнюю вершину в массиве с первой. Таким образом, функция PolygonC) всегда рисует замкнутую фигуру, если, конечно, в параметрах не были указаны координаты всего двух вершин.
При рисовании сложных многоугольников с самопересечениями границ можно задавать один из двух вариантов закраски его внутренних областей при помощи следующей функции:
int SetPolyFillMode (HDC hDC. int iPolyFi11 Mode)
Многоугольные фигуры