CRgn::CreatePolyPolygonRgn
Cria uma região consiste de uma série de polígonos fechados.
BOOL CreatePolyPolygonRgn(
LPPOINT lpPoints,
LPINT lpPolyCounts,
int nCount,
int nPolyFillMode
);
Parâmetros
lpPoints
Aponta para uma matriz de PONTO estruturas ou uma matriz de CPoint objetos que define os vértices dos polígonos. Cada polígono deve ser fechado explicitamente porque o sistema não o fecha automaticamente.Os polígonos são especificados consecutivamente.The PONTO estrutura tem a seguinte forma:typedef struct tagPOINT {
int x;
} POINT;
lpPolyCounts
Aponta para uma matriz de inteiros.O primeiro inteiro Especifica o número de vértices no primeiro polígono no lpPoints array, o segundo inteiro Especifica o número de vértices no polígono segundo e assim por diante.nCount
Especifica o número total de números inteiros no lpPolyCounts matriz.nPolyFillMode
Especifica o modo preenchimento de polígono.Esse valor pode ser qualquer um dos ALTERNATIVA or ENROLAMENTO.
Valor de retorno
Diferente de zero se a operação foi bem-sucedida; caso contrário, 0.
Comentários
A região resultante é armazenada na CRgn objeto.
Os polígonos podem estar separados ou eles podem se sobrepor.
O dimensionar de uma região é limitado a 64 K de memória ou de unidades lógicas de 32.767 a 32.767, o que for menor.
Quando o modo de preenchimento de polígono é ALTERNATIVA, o sistema preenche a área entre os lados do polígono ímpares e pares em cada linha de varredura.Ou seja, o sistema preenche a área entre o primeiro e o segundo lado, entre o terceiro e quarto lado e assim por diante.
Quando o modo de preenchimento de polígono é ENROLAMENTO, o sistema usa a direção em que uma figura foi desenhada para determinar se deve preencher uma área.Cada segmento de linha em um polígono é desenhado em um sentido horário ou sentido.Sempre que uma linha imaginária extraída de uma área fechada para fora de uma figura passa por um segmento de linha no sentido horário, uma contagem é incrementada.Quando a linha passa por um segmento de linha no sentido anti-horário, a contagem é diminuída.A área é preenchida se a contagem for diferente de zero quando a linha atinge fora da figura.
Quando um aplicativo terminou de usar uma região criada com o CreatePolyPolygonRgn função, ele deve selecionar a região do contexto de dispositivo e use o CGDIObject::DeleteObjectfunção de membro para removê-lo.
Requisitos
Cabeçalho: afxwin.h