CRgn::CreatePolyPolygonRgn
Cria uma região que consiste de uma série de polígonos fechados.
BOOL CreatePolyPolygonRgn(
LPPOINT lpPoints,
LPINT lpPolyCounts,
int nCount,
int nPolyFillMode
);
Parâmetros
lpPoints
Aponta para um vetor de estruturas de POINT ou uma matriz de objetos de CPoint que define os vértices dos polígonos.Cada polígonos deve ser fechada explicitamente porque o sistema não fecha os automaticamente.Os polígonos consecutivamente são especificados.A estrutura de POINT tem a seguinte forma:typedef struct tagPOINT {
int x;
int y;
} POINT;
lpPolyCounts
Aponta para uma matriz de inteiros.O primeiro inteiro especifica o número de vértices no primeiro polígonos na matriz de lpPoints , o segundo inteiro especifica o número de vértices no segundo polígonos, e assim por diante.nCount
Especifica o número total de inteiros na matriz de lpPolyCounts .nPolyFillMode
Especifica o modo de polígono- preencher.Esse valor pode ser ALTERNATE ou WINDING.
Valor de retorno
Diferente de zero se a operação foi bem-sucedida; se não 0.
Comentários
A região resultante é armazenada no objeto de CRgn .
Os polígonos podem ser separam, ou podem sobrepor.
O tamanho de uma região é limitado a 32.767 por 32.767 unidades lógicas ou a 64K de memória, qualquer é menor.
Quando o modo de polígono- preencher é ALTERNATE, o sistema preenche a área lado ímpares entre e numerados de numerados polygon em cada linha de verificação.Isto é, o sistema preenche a área entre o primeiro e segundo lado, entre o terceiro e quarto lado, e assim por diante.
Quando o modo de polígono- preencher é WINDING, o sistema usa a direção em que uma figura foi desenhada para determinar se preencher uma área.Cada segmento de linha em um polígono é desenhada no sentido horário ou sentido anti-horário.Sempre que uma linha imaginário desenhada de uma área englobada para fora de uma figura passa por um segmento de linha no sentido horário, uma contagem. é incrementadaQuando a linha passa por um segmento de linha anti-horário, a contagem está decrescida.A área é preenchida se o número for diferente de zero quando a linha chegar a fora da figura.
Quando um aplicativo tiver terminado de usar uma região criada com a função de CreatePolyPolygonRgn , deve selecionar a região fora do contexto de dispositivo e usar a função de membro de CGDIObject::DeleteObject para removê-la.
Requisitos
Cabeçalho: afxwin.h