Obszary przycinania
Region przycięcia jest jednym z obiektów graficznych, które aplikacja może wybrać do kontekstu urządzenia (DC). Zazwyczaj jest prostokątny. Niektóre konteksty urządzeń zapewniają wstępnie zdefiniowany lub domyślny region wycinków, podczas gdy inne nie. Jeśli na przykład uzyskasz uchwyt kontekstu urządzenia z funkcji BeginPaint, kontekst urządzenia zawiera z góry ustalony prostokątny obszar ograniczenia odpowiadający nieprawidłowemu prostokątowi, który wymaga przemalowania. Jednak w przypadku uzyskania dojścia kontekstu urządzenia przez wywołanie funkcji GetDC z parametrem NULLhWnd lub poprzez wywołanie funkcji CreateDC, kontekst urządzenia nie zawiera domyślnego regionu wycinkowania. Aby uzyskać więcej informacji o kontekstach urządzeń zwracanych przez funkcję BeginPaint, zobacz Malowanie i Rysowanie. Aby uzyskać więcej informacji na temat kontekstów urządzeń zwracanych przez funkcje CreateDC i GetDC, zobacz Konteksty urządzeń.
Aplikacje mogą wykonywać różne operacje na obszarach przycięcia. Niektóre z tych operacji wymagają uchwytu identyfikującego region, a niektóre nie. Na przykład aplikacja może wykonywać następujące operacje bezpośrednio w regionie przycinania kontekstu urządzenia.
- Ustal, czy dane wyjściowe grafiki są wyświetlane w granicach regionu, przekazując współrzędne linii, łuku, bitmapy, tekstu lub wypełnionego kształtu do funkcji PtVisible.
- Ustal, czy część obszaru klienta przecina region, wywołując funkcję RectVisible.
- Przenieś istniejący region według określonego przesunięcia, wywołując funkcję OffsetClipRgn.
- Wyklucz prostokątną część obszaru klienta z bieżącego regionu wycinkowania, wywołując funkcję ExcludeClipRect.
- Złącz prostokątną część obszaru klienta z bieżącym obszarem wycinka poprzez wywołanie funkcji IntersectClipRect.
Po uzyskaniu uchwytu identyfikującego region wycinków aplikacja może wykonać dowolną operację wspólną z regionami, takimi jak:
- Połączenie kopii bieżącego regionu przycinania z drugim regionem przez wywołanie funkcji CombineRgn.
- Porównaj kopię bieżącego regionu wycinków do drugiego regionu, wywołując funkcję EqualRgn.
- Ustal, czy punkt znajduje się wewnątrz kopii bieżącego regionu wycinkowania, wywołując funkcję PtInRegion.