wingdi.h


GetPath

La función GetPath recupera las coordenadas que definen los puntos de final de las líneas y los puntos de control de las curvas encontradas en el camino que esté seleccionado dentro del contexto de dispositivo especificado.

Sintaxis

int GetPath(
    HDC hdc,           // manipulador de contexto de dispositivo
    LPPOINT lpPoints,  // dirección del array que recibe los vértices del camino
    LPBYTE lpTypes,    // dirección del array de los tipos de vértices del camino
    int nSize          // número de puntos que definen el camino
   );

Parámetros:

hdc: identifica el contexto de dispositivo que contiene un camino cerrado.

lpPoints: apunta a un array de estructuras POINT que contienen los extremos de las líneas y los puntos de control de las curvas.

lpTypes: apunta a un array de bytes donde se sitúan los tipos de cada vértice. Esos valores son uno de los siguientes:

Tipo Descripción
PT_MOVETO Especifica que el punto correspondiente en el parámetro lpPoints es el comienzo de una figura separada.
PT_LINETO Especifica que el punto anterior y el correspondiente en lpPoints son los extremos de un segmento recto.
PT_BEZIERTO Especifica que el punto correspondiente en lpPoints es un punto de control o un extremo de una curva Bézier. Este tipo de valores siembre aparecen en conjuntos de tres. El punto en el camino que los precede define el punto de comienzo de la curva Bézier. Los primeros dos puntos PT_BEZIERTO son puntos de control y el tercero es el punto de final (si es codificado duro).

Un valor PT_LINETO o PT_BEZIERTO puede ser combinado con el siguiente valor (usando el operador de bit OR) para indicar que el punto correspondiente es el último en una figura y que la figura debe ser cerrada:

Bandera Descripción
PT_CLOSEFIGURE Especifica que la figura será cerrada automáticamente después de que el segmento recto o la curva correspondiente se haya trazado. La figura se cierra trazando una línea desde el punto final del segmento recto o curva al punto correspondiente al último PT_MOVETO.

nSize: especifica el número total de estructuras POINT que se deben colocar en el array apuntado por lpPoints. Este valor debe ser el mismo que el número de bytes que se deben colocar en el array apuntado por lpTypes.

Valor de retorno

Si el parámetro nSize no es cero, el valor de retorno es el número de puntos enumerados. Si nSize es cero, el valor de retorno es el número total de puntos en el camino (y GetPath no escribe nada en los buffers). Si nSize no es cero y es menor que el número de puntos en el camino, el valor de retorno es -1. Para obtener información adicional sobre el error, llamar a GetLastError. GetLastError puede devolver uno de los siguientes códigos:

ERROR_CAN_NOT_COMPLETE
ERROR_INVALID_PARAMETER
ERROR_BUFFER_OVERFLOW

Observaciones

El contexto de dispositivo identificado por el parámetro hdc debe contener un camino cerrado.

Los puntos en el camino se devuelven en coordenadas lógicas. Los puntos se almacenan en el camino en coordenadas de dispositivo, de modo que GetPath cambia los puntos de coordenadas de dispositivo a coordenadas lógicas usando la inversa de la transformación actual.

La función FlattenPath puede se invocada antes de llamar a GetPath para convertir todas las curvas del camino en segmentos rectos.