Ausschneiden von Regionen

Ein Ausschneidebereich ist eines der Grafikobjekte, die eine Anwendung in einem Gerätekontext (DC) auswählen kann. Sie ist in der Regel rechteckig. Einige Gerätekontexte bieten einen vordefinierten oder standardmäßigen Ausschneidebereich, andere nicht. Wenn Sie beispielsweise ein Gerätekontexthandl von der BeginPaint-Funktion abrufen, enthält der DC einen vordefinierten rechteckigen Ausschneidebereich, der dem ungültigen Rechteck entspricht, das neu gepaint werden muss. Wenn Sie jedoch ein Gerätekontexthandler abrufen, indem Sie die GetDC-Funktion mit einem NULLhWnd-Parameter aufrufen oder indem Sie die CreateDC-Funktion aufrufen, enthält der Domänencontroller keinen Standardausschneidebereich. Weitere Informationen zu Gerätekontexten, die von der BeginPaint-Funktion zurückgegeben werden, finden Sie unter Zeichnen und Zeichnen von . Weitere Informationen zu Gerätekontexten, die von den Funktionen CreateDC und GetDC zurückgegeben werden, finden Sie unter Gerätekontexte.

Anwendungen können eine Vielzahl von Vorgängen für Ausschneideregionen ausführen. Einige dieser Vorgänge erfordern ein Handle, das die Region identifiziert, andere nicht. Beispielsweise kann eine Anwendung die folgenden Vorgänge direkt im Ausschneidebereich eines Gerätekontexts ausführen.

  • Bestimmen Sie, ob die Grafikausgabe innerhalb der Rahmen der Region angezeigt wird, indem Sie Koordinaten der entsprechenden Linie, des Bogens, der Bitmap, des Texts oder der ausgefüllten Form an die PtVisible-Funktion übergeben.
  • Bestimmen Sie, ob ein Teil des Clientbereichs eine Region überschneidet, indem Sie die RectVisible-Funktion aufrufen.
  • Verschieben Sie den vorhandenen Bereich um einen angegebenen Offset, indem Sie die OffsetClipRgn-Funktion aufrufen.
  • Schließen Sie einen rechteckigen Teil des Clientbereichs aus dem aktuellen Ausschneidebereich aus, indem Sie die ExcludeClipRect-Funktion aufrufen.
  • Kombinieren Sie einen rechteckigen Teil des Clientbereichs mit dem aktuellen Ausschneidebereich, indem Sie die IntersectClipRect-Funktion aufrufen.

Nach dem Abrufen eines Handles, das den Ausschneidebereich identifiziert, kann eine Anwendung einen beliebigen Vorgang ausführen, der für Regionen üblich ist, z. B.:

  • Kombinieren einer Kopie des aktuellen Clippingbereichs mit einer zweiten Region durch Aufrufen der CombineRgn-Funktion.
  • Vergleichen Sie eine Kopie des aktuellen Ausschneidebereichs mit einer zweiten Region, indem Sie die EqualRgn-Funktion aufrufen.
  • Bestimmen Sie, ob sich ein Punkt innerhalb einer Kopie des aktuellen Ausschneidebereichs befindet, indem Sie die PtInRegion-Funktion aufrufen.