Share via


Método PathGradientBrush::GetFocusScales (gdipluspath.h)

El método PathGradientBrush::GetFocusScales obtiene las escalas de foco de este pincel de degradado de ruta de acceso.

Sintaxis

Status GetFocusScales(
  [out] REAL *xScale,
  [out] REAL *yScale
);

Parámetros

[out] xScale

Tipo: REAL*

Puntero a un valor real que recibe el valor de escala del foco x.

[out] yScale

Tipo: REAL*

Puntero a un valor REAL que recibe el valor de escala del foco y.

Valor devuelto

Tipo: Estado

Si el método se ejecuta correctamente, devuelve Ok, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

De forma predeterminada, el color central de un degradado de trazado está en el punto central. Al llamar a PathGradientBrush::SetFocusScales, puede especificar que el color central debe aparecer a lo largo de una ruta de acceso que rodea el punto central. Por ejemplo, supongamos que la ruta de acceso del límite es un triángulo y el punto central está en el centroide de ese triángulo. Suponga también que el color del límite es rojo y el color central es azul. Si establece la escala del foco en (0,2, 0,2), el color es azul a lo largo del límite de un pequeño triángulo que rodea el punto central. Ese triángulo pequeño es la ruta de límite principal escalada por un factor de 0,2 en la dirección x y 0,2 en la dirección y. Al pintar con el pincel degradado de trazado, el color cambiará gradualmente de rojo a azul a medida que se mueve del límite del triángulo grande al límite del triángulo pequeño. El área dentro del triángulo pequeño se rellenará con azul.

Ejemplos

En el ejemplo siguiente se crea un objeto PathGradientBrush basado en una ruta triangular. El código establece las escalas de foco del pincel de degradado de la ruta de acceso en (0,2, 0,2) y, a continuación, usa el pincel degradado de la ruta de acceso para rellenar un área que contiene el trazado triangular. Por último, el código llama al método PathGradientBrush::GetFocusScales del objeto PathGradientBrush para obtener los valores de la escala del foco x y la escala del foco y.

VOID Example_GetFocusScales(HDC hdc)
{
   Graphics graphics(hdc);

   Point points[] = {Point(100, 0), Point(200, 200), Point(0, 200)};

   // No GraphicsPath object is created. The PathGradientBrush
   // object is constructed directly from the array of points.
   PathGradientBrush pthGrBrush(points, 3);

   Color colors[] = {
      Color(255, 255, 0, 0),    // red
      Color(255, 0, 0, 255)};   // blue

   REAL relativePositions[] = {
      0.0f,    // red at the boundary of the outer triangle
      1.0f};   // blue at the boundary of the inner triangle

   pthGrBrush.SetInterpolationColors(colors, relativePositions, 2);

   // The inner triangle is formed by scaling the outer triangle
   // about its centroid. The scaling factor is 0.2 in both
   // the x and y directions.
   pthGrBrush.SetFocusScales(0.2f, 0.2f);

   // Fill a rectangle that is larger than the triangle
   // specified in the Point array. The portion of the
   // rectangle outside the triangle will not be painted.
   graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);

   // Obtain information about the path gradient brush.
   REAL xScale = 0.0f;
   REAL yScale = 0.0f;
   pthGrBrush.GetFocusScales(&xScale, &yScale);

   // The value of xScale is now 0.2.
   // The value of yScale is now 0.2. 
}

Requisitos

   
Cliente mínimo compatible Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdipluspath.h (incluya Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

Pinceles y formas rellenas

Rellenar una forma con un degradado de color

Graphicspath

PathGradientBrush

PathGradientBrush::SetFocusScales