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 .