Udostępnij za pośrednictwem


Regiony (GDI+)

Region jest częścią powierzchni wyświetlania. Regiony mogą być proste (pojedynczy prostokąt) lub złożone (kombinacja wielokątów i zamkniętych krzywych). Na poniższej ilustracji przedstawiono dwa regiony: jeden skonstruowany na podstawie prostokąta, a drugi skonstruowany ze ścieżki.

ilustracja przedstawiająca przezroczysty prostokątny region nakładających się na nieprzezroczysty kształt

Regiony są często używane do wycinania i testowania trafień. Wycinki obejmują ograniczenie rysowania do określonego regionu ekranu, zazwyczaj część ekranu, która musi zostać zaktualizowana. Testowanie trafień polega na sprawdzeniu, czy kursor znajduje się w określonym regionie ekranu po naciśnięciu przycisku myszy.

Możesz utworzyć region z prostokąta lub ścieżki. Możesz również utworzyć złożone regiony, łącząc istniejące regiony. Klasa Region udostępnia następujące metody łączenia regionów: , Union, Xor, Excludei Region::Uzupełnij.

Skrzyżowanie dwóch regionów to zestaw wszystkich punktów należących do obu regionów. Związek jest zestawem wszystkich punktów należących do jednego lub drugiego lub obu regionów. Uzupełnieniem regionu jest zestaw wszystkich punktów, które nie znajdują się w regionie. Na poniższej ilustracji przedstawiono skrzyżowanie i związek dwóch regionów na poprzedniej ilustracji.

ilustracja przedstawiająca skrzyżowanie regionów na poprzedniej ilustracji oraz ich skrzyżowanie

Metoda Xor zastosowana do pary regionów tworzy region zawierający wszystkie punkty należące do jednego regionu lub drugiego, ale nie obu. Metoda Exclude zastosowana do pary regionów tworzy region zawierający wszystkie punkty w pierwszym regionie, które nie znajdują się w drugim regionie. Na poniższej ilustracji przedstawiono regiony, które wynikają z zastosowania metod Xor i Exclude do dwóch regionów pokazanych na początku tego tematu.

ilustracja przedstawiająca części w obu regionach, ale nie w obu tych regionach, oraz część prostokąta, który nie nakłada się na zakrzywiony region

Aby wypełnić region, potrzebujesz obiektugrafiki, obiektu Brush oraz obiekturegion. Obiekt Graphics udostępnia metodę Graphics::FillRegion, a obiekt Brush przechowuje atrybuty wypełnienia, takie jak kolor lub wzorzec. Poniższy przykład wypełnia region stałym kolorem.

myGraphics.FillRegion(&mySolidBrush, &myRegion);