26 Objetos básicos del GDI:
El camino (Path)
Se usan para crear figuras complejas, a base de unir segmentos rectos con curvas y líneas Bézier. Estas figuras también pueden contener zonas rellenas y texto.
Los caminos siempre están asociados a un contexto de dispositivo, pero al contrario que otros objetos del GDI, no existe un camino por defecto.
Crear un camino
Para crear un camino hay que definir los puntos que lo componen, esto se hace usando funciones de trazado del GDI entre las llamadas a las funciones BeginPath y EndPath.
Las funciones que se pueden usar dentro de un camino son:
AngleArc | LineTo | Polyline |
Arc | MoveToEx | PolylineTo |
ArcTo | Pie | PolyPolygon |
Chord | PolyBezier | PolyPolyline |
CloseFigure | PolyBezierTo | Rectangle |
Ellipse | PolyDraw | RoundRect |
ExtTextOut | Polygon | TextOut |
BeginPath(hdc); SetBkMode(hdc, TRANSPARENT); TextOut(hdc, 10,10, "Con Clase", 9); Rectangle(hdc, 0,0,10,10); EndPath(hdc);
La función CloseFigure sirve para cerrar figuras irregulares creadas a partir de segmentos rectos y/o curvas.
En cualquier momento, antes de cerrar un camino, podemos eliminarlo usando AbortPath.
Operaciones con caminos
En el momento de cerrar el camino, llamando a EndPath, se selecciona el camino y se borra el previamente seleccionado para ese DC. A partir de ese momento tenemos varias opciones:
StrokePath | Trazar la línea definida por el camino, usando la pluma actual. |
FillPath | Pintar el interior del camino, usando el pincel actual. |
StrokeAndFillPath | Ambas cosas. |
PathToRegion | Convertir el camino en una región. |
FlattenPath | Vectorizar el camino, convertir las curvas sen series de segmentos rectos que se aproximen. |
GetPath | Recuperar las coordenadas y tipos de los puntos que componen el camino. |
SelectClipPath | Convertir el camino en un camino de recorte. |
Como en anteriores ocasiones, el proceso de rellenar figuras está sujeto al modo de relleno de polígonos, podemos obtener ese modo llamando a GetPolyFillMode y cambiarlo usando SetPolyFillMode.
El tema de recortes se trata con detalle en el siguiente capítulo.
Ejemplo 26
Nombre | Fichero | Fecha | Tamaño | Contador | Descarga |
---|---|---|---|---|---|
Ejemplo 26 | win026.zip | 2004-06-01 | 3248 bytes | 682 |