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

Consulte também

Referência

CRgn Class

Gráfico de hierarquia

CRgn::CreatePolygonRgn

CDC::SetPolyFillMode

CreatePolyPolygonRgn