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
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 |