Regiões de recorte

Uma região de recorte é um dos objetos gráficos que um aplicativo pode selecionar em um DC (contexto de dispositivo). Normalmente, é retangular. Alguns contextos de dispositivo fornecem uma região de recorte predefinida ou padrão, enquanto outros não. Por exemplo, se você obter um identificador de contexto de dispositivo da função BeginPaint , o DC conterá uma região de recorte retangular predefinida que corresponde ao retângulo inválido que requer repintamento. No entanto, quando você obtém um identificador de contexto do dispositivo chamando a função GetDC com um parâmetro hWndNULL ou chamando a função CreateDC, o DC não contém uma região de recorte padrão. Para obter mais informações sobre contextos de dispositivo retornados pela função BeginPaint , consulte Pintura e desenho . Para obter mais informações sobre contextos de dispositivo retornados pelas funções CreateDC e GetDC , consulte Contextos de dispositivo.

Os aplicativos podem executar uma variedade de operações em regiões de recorte. Algumas dessas operações exigem um identificador que identifica a região e outras não. Por exemplo, um aplicativo pode executar as operações a seguir diretamente na região de recorte de um contexto de dispositivo.

  • Determine se a saída de gráficos aparece dentro das bordas da região passando coordenadas da linha, arco, bitmap, texto ou forma preenchida correspondente para a função PtVisible .
  • Determine se parte da área do cliente intersecciona uma região chamando a função RectVisible .
  • Mova a região existente por um deslocamento especificado chamando a função OffsetClipRgn .
  • Exclua uma parte retangular da área do cliente da região de recorte atual chamando a função ExcludeClipRect .
  • Combine uma parte retangular da área do cliente com a região de recorte atual chamando a função IntersectClipRect .

Depois de obter um identificador que identifica a região de recorte, um aplicativo pode executar qualquer operação comum com regiões, como:

  • Combinando uma cópia da região de recorte atual com uma segunda região chamando a função CombineRgn .
  • Compare uma cópia da região de recorte atual com uma segunda região chamando a função EqualRgn .
  • Determine se um ponto está dentro do interior de uma cópia da região de recorte atual chamando a função PtInRegion .