Share via


Método Region::GetRegionScans(constMatrix*,Rect*,INT*) (gdiplusheaders.h)

El método Region::GetRegionScans obtiene una matriz de rectángulos que se aproximan a esta región. La región se transforma mediante una matriz especificada antes de que se calculen los rectángulos.

Sintaxis

Status GetRegionScans(
  [in]  const Matrix *matrix,
  [out] Rect         *rects,
  [out] INT          *count
);

Parámetros

[in] matrix

Tipo: matriz const *

Puntero a un objeto Matrix que se usa para transformar la región.

[out] rects

Tipo: Rect*

Puntero a una matriz de objetos Rect que recibe los rectángulos.

[out] count

Tipo: INT*

Puntero a un INT que recibe un valor que indica el número de rectángulos que se aproximan a esta región. El valor es válido incluso si rects es un puntero NULL .

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

El método Region::GetRegionScansCount se puede usar primero para determinar el número de rectángulos. A continuación, puede asignar un búfer que sea el tamaño correcto y establecer el parámetro rects para que apunte al búfer.

Ejemplos

En el ejemplo siguiente se crea una región a partir de una ruta de acceso y se obtiene un conjunto de rectángulos que se aproximan a la región. A continuación, el código dibuja cada uno de los rectángulos.

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

   SolidBrush solidBrush(Color(255, 255, 0, 0));
   Pen pen(Color(255, 0, 0, 0));
   GraphicsPath path;
   Matrix matrix;
   Rect* rects = NULL;
   INT count = 0;  

   // Create a region from a path.
   path.AddEllipse(10, 10, 50, 300);
   Region pathRegion(&path);    
   graphics.FillRegion(&solidBrush, &pathRegion);

   // Get the rectangles.
   graphics.GetTransform(&matrix);
   count = pathRegion.GetRegionScansCount(&matrix);
   rects = (Rect*)malloc(count*sizeof(Rect));
   pathRegion.GetRegionScans(&matrix, rects, &count);  

   // Draw the rectangles.
   for(INT j = 0; j < count; ++j)
      graphics.DrawRectangle(&pen, rects[j]);

   free(rects);
}

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 gdiplusheaders.h (include Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

Pruebas de posicionamiento con una región

Matriz

Rect

Región

Region::GetRegionScansCount

Regiones

Estado