Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podobnie jak struktura systemu Windows RECT .
Składnia
class CRect : public tagRECT
Elementy członkowskie
Konstruktory publiczne
| Nazwa/nazwisko | opis |
|---|---|
CRect::CRect |
CRect Tworzy obiekt. |
Metody publiczne
| Nazwa/nazwisko | opis |
|---|---|
CRect::BottomRight |
Zwraca prawy dolny punkt .CRect |
CRect::CenterPoint |
Zwraca punkt środkowy .CRect |
CRect::CopyRect |
Kopiuje wymiary prostokąta źródłowego do CRect. |
CRect::DeflateRect |
Zmniejsza szerokość i wysokość CRectobiektu . |
CRect::EqualRect |
Określa, czy CRect jest równe danym prostokątowi. |
CRect::Height |
Oblicza wysokość CRectelementu . |
CRect::InflateRect |
Zwiększa szerokość i wysokość CRectobiektu . |
CRect::IntersectRect |
Ustawia CRect wartość równą przecięciu dwóch prostokątów. |
CRect::IsRectEmpty |
Określa, czy CRect jest pusty.
CRect wartość jest pusta, jeśli szerokość i/lub wysokość to 0. |
CRect::IsRectNull |
Określa, czy topzmienne składowe , bottom, lefti right są równe 0. |
CRect::MoveToX |
Przenosi CRect się do określonej współrzędnej x. |
CRect::MoveToXY |
Przenosi CRect się do określonych współrzędnych x-i y. |
CRect::MoveToY |
Przenosi CRect się do określonej współrzędnej y. |
CRect::NormalizeRect |
Standaryzacja wysokości i szerokości CRect. |
CRect::OffsetRect |
Przenosi CRect się według określonych przesunięć. |
CRect::PtInRect |
Określa, czy określony punkt znajduje się w obiekcie CRect. |
CRect::SetRect |
Ustawia wymiary .CRect |
CRect::SetRectEmpty |
Ustawia CRect pusty prostokąt (wszystkie współrzędne równe 0). |
CRect::Size |
Oblicza rozmiar CRect. |
CRect::SubtractRect |
Odejmuje jeden prostokąt z innego. |
CRect::TopLeft |
Zwraca lewy górny punkt .CRect |
CRect::UnionRect |
Ustawia CRect wartość równą unii dwóch prostokątów. |
CRect::Width |
Oblicza szerokość elementu CRect. |
Operatory publiczne
| Nazwa/nazwisko | opis |
|---|---|
CRect::operator - |
Odejmuje podane przesunięcia z CRect lub deflates CRect i zwraca wynikowy CRect. |
CRect::operator LPCRECT |
Konwertuje element na CRect .LPCRECT |
CRect::operator LPRECT |
Konwertuje element na CRect .LPRECT |
CRect::operator != |
Określa, czy CRect nie jest równe prostokątowi. |
CRect::operator & |
Tworzy przecięcie CRect i prostokąt i zwraca wynikowy CRectelement . |
CRect::operator &= |
Ustawia CRect wartość równą przecięciu CRect i prostokątowi. |
CRect::operator | |
Tworzy unii CRect i prostokąta i zwraca wynikowy CRectelement . |
CRect::operator |= |
Ustawia CRect wartość równą unii CRect i prostokąta. |
CRect::operator + |
Dodaje podane przesunięcia do CRect lub zawyżania CRect i zwraca wynikowy CRect. |
CRect::operator += |
Dodaje określone przesunięcia do CRect lub zawyża .CRect |
CRect::operator = |
Kopiuje wymiary prostokąta do CRect. |
CRect::operator -= |
Odejmuje określone przesunięcia z CRect lub deflates CRect. |
CRect::operator == |
Określa, czy CRect jest równe prostokątowi. |
Uwagi
CRect Zawiera również funkcje składowe do manipulowania CRect obiektami i strukturami systemu Windows RECT .
CRect Obiekt można przekazać jako parametr funkcji wszędzie tam, RECTgdzie LPCRECT można przekazać strukturę lubLPRECT.
Uwaga
Ta klasa pochodzi ze tagRECT struktury. (Nazwa tagRECT jest mniej często używaną nazwą struktury RECT ). Oznacza to, że składowe danych (left, top, righti bottom) RECT struktury są dostępnymi elementami członkowskimi CRectdanych .
Element CRect zawiera zmienne składowe, które definiują lewy górny i dolny prawy punkt prostokąta.
Podczas określania CRectelementu należy zachować ostrożność, aby ją skonstruować, tak aby była znormalizowana — innymi słowy, wartość współrzędnych po lewej stronie jest mniejsza niż prawa, a górna wartość jest mniejsza niż dolna. Na przykład w lewym górnym rogu (10 10 10) i prawym dolnym rogu (20 20 20) zdefiniowano znormalizowany prostokąt, ale lewy górny (20 20 20) i prawy dolny (10 10 10) definiuje nienormalizowany prostokąt. Jeśli prostokąt nie jest znormalizowany, wiele CRect funkcji składowych może zwracać nieprawidłowe wyniki. (Zobacz CRect::NormalizeRect listę tych funkcji). Przed wywołaniem funkcji wymagającej znormalizowanych prostokątów można znormalizować nienormalizowane prostokąty, wywołując NormalizeRect funkcję.
Należy zachować ostrożność podczas manipulowania CRect elementami za pomocą funkcji składowych CDC::DPtoLP i CDC::LPtoDP . Jeśli tryb mapowania kontekstu wyświetlania jest taki, że zakres y jest ujemny, jak w MM_LOENGLISHpliku , CDC::DPtoLP zmieni wartość CRect tak, aby jego górna część jest większa niż dolna. Funkcje takie jak Height i Size zwracają wartości ujemne dla wysokości przekształconego CRectobiektu , a prostokąt będzie nie znormalizowany.
W przypadku używania przeciążonych CRect operatorów pierwszy operand musi być argumentem CRect; drugi może być strukturą RECT lub obiektem CRect .
Hierarchia dziedziczenia
tagRECT
CRect
Wymagania
Nagłówek:atltypes.h
CRect::BottomRight
Współrzędne są zwracane jako odwołanie do CPoint obiektu, który znajduje się w CRectobiekcie .
CPoint& BottomRight() throw();
const CPoint& BottomRight() const throw();
Wartość zwracana
Współrzędne prawego dolnego rogu prostokąta.
Uwagi
Tej funkcji można użyć do pobrania lub ustawienia prawego dolnego rogu prostokąta. Ustaw narożnik przy użyciu tej funkcji po lewej stronie operatora przypisania.
Przykład
// use BottomRight() to retrieve the bottom
// right POINT
CRect rect(210, 150, 350, 900);
CPoint ptDown;
ptDown = rect.BottomRight();
// ptDown is now set to (350, 900)
ASSERT(ptDown == CPoint(350, 900));
// or, use BottomRight() to set the bottom
// right POINT
CRect rect2(10, 10, 350, 350);
CPoint ptLow(180, 180);
CRect rect2(10, 10, 350, 350);
CPoint ptLow(180, 180);
rect2.BottomRight() = ptLow;
// rect2 is now (10, 10, 180, 180)
ASSERT(rect2 == CRect(10, 10, 180, 180));
CRect::CenterPoint
Oblicza punkt środkowy CRect , dodając wartości lewe i prawe oraz dzieląc przez dwa, a następnie dodając wartości górne i dolne oraz dzieląc przez dwa.
CPoint CenterPoint() const throw();
Wartość zwracana
CPoint Obiekt, który jest centralnym punktem CRect.
Przykład
// Code from this OnPaint() implementation can be pasted into your own application
// to draw lines that would look like a letter "Y" within your dialog.
void CMyDlg::OnPaint()
{
CPaintDC dc(this);
// device context for painting
// get the size and position of the client area of
// your window
CRect rect;
GetClientRect(&rect);
// Move the current pen to the top left of the window. We call the
// TopLeft() member of CRect here and it returns a CPoint object we
// pass to the override of CDC::MoveTo() that accepts a CPoint.
dc.MoveTo(rect.TopLeft());
// Draw a line from the top left to the center of the window.
// CenterPoint() gives us the middle point of the window as a
// CPoint, and since CDC::LineTo() has an override that accepts a
// CPoint, we can just pass it along.
dc.LineTo(rect.CenterPoint());
// Now, draw a line to the top right of the window. There's no
// CRect member which returns a CPoint for the top right of the
// window, so we'll reference the CPoint members directly and call
// the CDC::LineTo() override which takes two integers.
dc.LineTo(rect.right, rect.top);
// The top part of the "Y" is drawn. Now, we'll draw the stem. We
// start from the center point.
dc.MoveTo(rect.CenterPoint());
// and then draw to the middle of the bottom edge of the window.
// We'll get the x-coordinate from the x member of the CPOINT
// returned by CenterPoint(), and the y value comes directly from
// the rect.
dc.LineTo(rect.CenterPoint().x, rect.bottom);
}
CRect::CopyRect
Kopiuje lpSrcRect prostokąt do CRect.
void CopyRect(LPCRECT lpSrcRect) throw();
Parametry
lpSrcRect
RECT Wskazuje strukturę lub CRect obiekt, który ma zostać skopiowany.
Przykład
CRect rectSource(35, 10, 125, 10);
CRect rectDest;
rectDest.CopyRect(&rectSource);
// rectDest is now set to (35, 10, 125, 10)
RECT rectSource2;
rectSource2.left = 0;
rectSource2.top = 0;
rectSource2.bottom = 480;
rectSource2.right = 640;
rectDest.CopyRect(&rectSource2);
// works against RECT structures, too!
// rectDest is now set to (0, 0, 640, 480)
CRect::CRect
CRect Tworzy obiekt.
CRect() throw();
CRect(int l, int t, int r, int b) throw();
CRect(const RECT& srcRect) throw();
CRect(LPCRECT lpSrcRect) throw();
CRect(POINT point, SIZE size) throw();
CRect(POINT topLeft, POINT bottomRight) throw();
Parametry
l
Określa lewą pozycję CRect.
t
Określa górną część obiektu CRect.
r
Określa prawą pozycję .CRect
b
Określa dół .CRect
srcRect
Odwołuje się do RECT struktury ze współrzędnymi dla CRectelementu .
lpSrcRect
RECT Wskazuje strukturę ze współrzędnymi dla CRectelementu .
point
Określa punkt początkowy prostokąta, który ma zostać skonstruowany. Odpowiada lewemu górnemu rogu.
size
Określa przemieszczenie z lewego górnego rogu do prawego dolnego rogu prostokąta, który ma zostać skonstruowany.
topLeft
Określa lewą górną pozycję .CRect
bottomRight
Określa prawą dolną pozycję .CRect
Uwagi
Jeśli nie podano żadnych argumentów, leftelementy członkowskie , top, righti bottom są ustawione na 0.
Konstruktory () i CRect(const RECT&) wykonują operację CRect.LPCRECTCopyRect Inne konstruktory inicjują zmienne składowe obiektu bezpośrednio.
Przykład
// default constructor is equivalent to CRect(0, 0, 0, 0)
CRect emptyRect;
// four-integers are left, top, right, and bottom
CRect rect(0, 0, 100, 50);
ASSERT(rect.Width() == 100);
ASSERT(rect.Height() == 50);
// Initialize from RECT structure
RECT sdkRect;
sdkRect.left = 0;
sdkRect.top = 0;
sdkRect.right = 100;
sdkRect.bottom = 50;
CRect rect2(sdkRect);
// by reference
CRect rect3(&sdkRect);
// by address
ASSERT(rect2 == rect);
ASSERT(rect3 == rect);
// from a point and a size
CPoint pt(0, 0);
CSize sz(100, 50);
CRect rect4(pt, sz);
ASSERT(rect4 == rect2);
// from two points
CPoint ptBottomRight(100, 50);
CRect rect5(pt, ptBottomRight);
ASSERT(rect5 == rect4);
CRect::DeflateRect
DeflateRect deflates, przesuwając boki CRect w kierunku środka.
void DeflateRect(int x, int y) throw();
void DeflateRect(SIZE size) throw();
void DeflateRect(LPCRECT lpRect) throw();
void DeflateRect(int l, int t, int r, int b) throw();
Parametry
x
Określa liczbę jednostek do deflacji lewej i prawej strony .CRect
y
Określa liczbę jednostek do deflacji górnej i dolnej części CRect.
size
A SIZE lub CSize , który określa liczbę jednostek do deflacji CRect. Wartość cx określa liczbę jednostek do deflacji po lewej i prawej stronie, a cy wartość określa liczbę jednostek do deflacji górnej i dolnej.
lpRect
RECT Wskazuje strukturę lub CRect określa liczbę jednostek do deflacji po każdej stronie.
l
Określa liczbę jednostek do deflacji lewej strony .CRect
t
Określa liczbę jednostek do deflacji górnej części CRect.
r
Określa liczbę jednostek do deflacji po prawej stronie CRect.
b
Określa liczbę jednostek do deflacji dolnej części CRect.
Uwagi
W tym DeflateRect celu dodaje jednostki do lewej i górnej i odejmuje jednostki z prawej i dolnej części. Parametry DeflateRect są wartościami ze znakiem; wartości dodatnie deflate CRect i wartości ujemne zawyżają je.
Dwa pierwsze przeciążenia deflatują obie pary przeciwnych stronCRect, tak aby jej całkowita szerokość została zmniejszona o dwa razy x (lub ), a łączna wysokość jest zmniejszana o dwa razy cx (lub ycy). Pozostałe dwa przeciążenia deflują każdą stronę CRect niezależnie od pozostałych.
Przykład
CRect rect(10, 10, 50, 50);
rect.DeflateRect(1, 2);
ASSERT(rect.left == 11 && rect.right == 49);
ASSERT(rect.top == 12 && rect.bottom == 48);
CRect rect2(10, 10, 50, 50);
CRect rectDeflate(1, 2, 3, 4);
rect2.DeflateRect(&rectDeflate);
ASSERT(rect2.left == 11 && rect2.right == 47);
ASSERT(rect2.top == 12 && rect2.bottom == 46);
CRect::EqualRect
Określa, czy CRect jest równe danym prostokątowi.
BOOL EqualRect(LPCRECT lpRect) const throw();
Parametry
lpRect
RECT Wskazuje strukturę lub CRect obiekt zawierający współrzędne lewego górnego i prawego dolnego rogu prostokąta.
Wartość zwracana
Niezerowe, jeśli dwa prostokąty mają te same wartości od góry, lewej, dolnej i prawej; w przeciwnym razie 0.
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1.EqualRect(rect2));
ASSERT(!rect1.EqualRect(rect3));
// works just fine against RECTs, as well
RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;
ASSERT(rect1.EqualRect(&test));
CRect::Height
Oblicza wysokość przez CRect odjęcie najwyższej wartości od wartości dolnej.
int Height() const throw();
Wartość zwracana
Wysokość CRectelementu .
Uwagi
Wynikowa wartość może być ujemna.
Uwaga
Prostokąt musi być znormalizowany lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokąta.
Przykład
CRect rect(20, 30, 80, 70);
int nHt = rect.Height();
// nHt is now 40
ASSERT(nHt == 40);
CRect::InflateRect
InflateRect zawyża CRect , przesuwając boki z dala od środka.
void InflateRect(int x, int y) throw();
void InflateRect(SIZE size) throw();
void InflateRect(LPCRECT lpRect) throw();
void InflateRect(int l, int t, int r, int b) throw();
Parametry
x
Określa liczbę jednostek, które mają zawyżać lewą i prawą stronę obiektu CRect.
y
Określa liczbę jednostek, które mają zawyżać górną i dolną część .CRect
size
A SIZE lub CSize określa liczbę jednostek, które mają być zawyżone CRect. Wartość cx określa liczbę jednostek, które mają zawyżać lewe i prawe strony, a cy wartość określa liczbę jednostek, które mają zawyżać górny i dolny.
lpRect
RECT Wskazuje strukturę lub CRect określa liczbę jednostek, które mają być zawyżone po każdej stronie.
l
Określa liczbę jednostek, które mają zawyżać lewą stronę .CRect
t
Określa liczbę jednostek, które mają zawyżać górną część .CRect
r
Określa liczbę jednostek, które mają zawyżać prawą stronę .CRect
b
Określa liczbę jednostek, które mają zawyżać dolną część .CRect
Uwagi
W tym InflateRect celu odejmuje jednostki od lewej i górnej i dodaje jednostki do prawej i dolnej części. Parametry InflateRect są wartościami ze znakiem; wartości dodatnie zawyżają i wartości ujemne CRect .
Dwa pierwsze przeciążenia zawyżają obie pary przeciwnych stronCRect, dzięki czemu jej całkowita szerokość jest zwiększana o dwa razy x (lub ), a łączna wysokość jest zwiększana o dwa razy cx (lub ycy). Pozostałe dwa przeciążenia zawyżają każdą stronę CRect niezależnie od pozostałych.
Przykład
CRect rect(0, 0, 300, 300);
rect.InflateRect(50, 200);
// rect is now (-50, -200, 350, 500)
ASSERT(rect == CRect(-50, -200, 350, 500));
CRect::IntersectRect
Tworzy wartość równą przecięciu CRect dwóch istniejących prostokątów.
BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Parametry
lpRect1
RECT Wskazuje strukturę lub CRect obiekt, który zawiera prostokąt źródłowy.
lpRect2
RECT Wskazuje strukturę lub CRect obiekt, który zawiera prostokąt źródłowy.
Wartość zwracana
Niezerowe, jeśli skrzyżowanie nie jest puste; 0, jeśli skrzyżowanie jest puste.
Uwagi
Przecięcie jest największym prostokątem znajdującym się w obu istniejących prostokątach.
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
CRect rectOne(125, 0, 150, 200);
CRect rectTwo(0, 75, 350, 95);
CRect rectInter;
rectInter.IntersectRect(rectOne, rectTwo);
ASSERT(rectInter == CRect(125, 75, 150, 95));
// operator &= can do the same task:
CRect rectInter2 = rectOne;
rectInter2 &= rectTwo;
ASSERT(rectInter2 == CRect(125, 75, 150, 95));
CRect::IsRectEmpty
Określa, czy CRect jest pusty.
BOOL IsRectEmpty() const throw();
Wartość zwracana
Wartość niezerowa, jeśli CRect jest pusta; 0, jeśli CRect nie jest pusta.
Uwagi
Prostokąt jest pusty, jeśli szerokość i/lub wysokość są 0 lub ujemne. Różni się od IsRectNullelementu , który określa, czy wszystkie współrzędne prostokąta mają wartość zero.
Uwaga
Prostokąt musi być znormalizowany lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokąta.
Przykład
CRect rectNone(0, 0, 0, 0);
CRect rectSome(35, 50, 135, 150);
ASSERT(rectNone.IsRectEmpty());
ASSERT(!rectSome.IsRectEmpty());
CRect rectEmpty(35, 35, 35, 35);
ASSERT(rectEmpty.IsRectEmpty());
CRect::IsRectNull
Określa, czy górne, lewe, dolne i prawe wartości CRect są równe 0.
BOOL IsRectNull() const throw();
Wartość zwracana
Niezerowe, jeśli CRectwartości górne, lewe, dolne i prawe są równe 0; w przeciwnym razie 0.
Uwagi
Różni się od IsRectEmptyelementu , który określa, czy prostokąt jest pusty.
Przykład
CRect rectNone(0, 0, 0, 0);
CRect rectSome(35, 50, 135, 150);
ASSERT(rectNone.IsRectNull());
ASSERT(!rectSome.IsRectNull());
// note that null means _all_ zeros
CRect rectNotNull(0, 0, 35, 50);
ASSERT(!rectNotNull.IsRectNull());
CRect::MoveToX
Wywołaj tę funkcję, aby przenieść prostokąt do bezwzględnej współrzędnej x określonej przez x.
void MoveToX(int x) throw();
Parametry
x
Bezwzględna współrzędna x dla lewego górnego rogu prostokąta.
Przykład
CRect rect(0, 0, 100, 100);
rect.MoveToX(10);
// rect is now (10, 0, 110, 100);
ASSERT(rect == CRect(10, 0, 110, 100));
CRect::MoveToXY
Wywołaj tę funkcję, aby przenieść prostokąt do określonych współrzędnych bezwzględnych x-i y.
void MoveToXY(int x, int y) throw();
void MoveToXY(POINT point) throw();
Parametry
x
Bezwzględna współrzędna x dla lewego górnego rogu prostokąta.
y
Bezwzględna współrzędna y dla lewego górnego rogu prostokąta.
point
Struktura POINT określająca bezwzględny lewy górny róg prostokąta.
Przykład
CRect rect(0, 0, 100, 100);
rect.MoveToXY(10, 10);
// rect is now (10, 10, 110, 110);
ASSERT(rect == CRect(10, 10, 110, 110));
CRect::MoveToY
Wywołaj tę funkcję, aby przenieść prostokąt do bezwzględnej współrzędnej y określonej przez y.
void MoveToY(int y) throw();
Parametry
y
Bezwzględna współrzędna y dla lewego górnego rogu prostokąta.
Przykład
CRect rect(0, 0, 100, 100);
rect.MoveToY(10);
// rect is now (0, 10, 100, 110);
ASSERT(rect == CRect(0, 10, 100, 110));
CRect::NormalizeRect
Normalizuje tak CRect , aby wysokość i szerokość są dodatnie.
void NormalizeRect() throw();
Uwagi
Prostokąt jest znormalizowany dla pozycjonowania czwartej ćwiartki, którego system Windows zwykle używa do współrzędnych.
NormalizeRect porównuje górne i dolne wartości i zamienia je, jeśli górna część jest większa niż dolna. Podobnie zamienia wartości po lewej i prawej, jeśli lewa jest większa niż po prawej stronie. Ta funkcja jest przydatna podczas pracy z różnymi trybami mapowania i odwróconymi prostokątami.
Uwaga
Następujące CRect funkcje składowe wymagają znormalizowanych prostokątów w celu prawidłowego działania: Height, , WidthSizeIsRectEmptyPtInRectEqualRectUnionRectIntersectRectSubtractRectoperator ==operator !=operator |operator |=operator &operator &=i .
Przykład
CRect rect1(110, 100, 250, 310);
CRect rect2(250, 310, 110, 100);
rect1.NormalizeRect();
rect2.NormalizeRect();
ASSERT(rect1 == rect2);
CRect::OffsetRect
Przenosi CRect się według określonych przesunięć.
void OffsetRect(int x, int y) throw();
void OffsetRect(POINT point) throw();
void OffsetRect(SIZE size) throw();
Parametry
x
Określa ilość do przeniesienia w lewo lub w prawo. Musi to być ujemne, aby przejść w lewo.
y
Określa ilość do przeniesienia w górę lub w dół. Musi to być ujemne, aby przejść w górę.
point
POINT Zawiera strukturę lub CPoint obiekt określający oba wymiary do przeniesienia.
size
SIZE Zawiera strukturę lub CSize obiekt określający oba wymiary do przeniesienia.
Uwagi
Przenosi CRectx jednostki wzdłuż osi x i y jednostek wzdłuż osi y. Parametry x i y są wartościami ze znakiem, więc CRect można je przenosić w lewo lub w prawo i w górę lub w dół.
Przykład
CRect rect(0, 0, 35, 35);
rect.OffsetRect(230, 230);
// rect is now (230, 230, 265, 265)
ASSERT(rect == CRect(230, 230, 265, 265));
CRect::operator LPCRECT
Konwertuje element na CRect .LPCRECT
operator LPCRECT() const throw();
Uwagi
Jeśli używasz tej funkcji, nie potrzebujesz operatora address-of (&). Ten operator będzie automatycznie używany podczas przekazywania CRect obiektu do funkcji, która oczekuje LPCRECTobiektu .
CRect::operator LPRECT
Konwertuje element na CRect .LPRECT
operator LPRECT() throw();
Uwagi
Jeśli używasz tej funkcji, nie potrzebujesz operatora address-of (&). Ten operator będzie automatycznie używany podczas przekazywania CRect obiektu do funkcji, która oczekuje LPRECTobiektu .
Przykład
Zobacz przykład dla elementu CRect::operator LPCRECT.
CRect::operator =
srcRect Przypisuje do CRect.
void operator=(const RECT& srcRect) throw();
Parametry
srcRect
Odwołuje się do prostokąta źródłowego. Może być elementem RECT lub CRect.
Przykład
CRect rect(0, 0, 127, 168);
CRect rect2;
rect2 = rect;
ASSERT(rect2 == CRect(0, 0, 127, 168));
CRect::operator ==
Określa, czy rect jest równe CRect , porównując współrzędne ich lewy górny i dolny prawy róg.
BOOL operator==(const RECT& rect) const throw();
Parametry
rect
Odwołuje się do prostokąta źródłowego. Może być elementem RECT lub CRect.
Wartość zwracana
Niezerowe, jeśli równe; w przeciwnym razie 0.
Uwagi
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1 == rect2);
// works just fine against RECTs, as well
RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;
ASSERT(rect1 == test);
CRect::operator !=
Określa, czy rect nie jest równe CRect , porównując współrzędne ich lewy górny i dolny prawy róg.
BOOL operator!=(const RECT& rect) const throw();
Parametry
rect
Odwołuje się do prostokąta źródłowego. Może być elementem RECT lub CRect.
Wartość zwracana
Wartość niezerowa, jeśli nie jest równa; w przeciwnym razie 0.
Uwagi
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1 != rect3);
// works just fine against RECTs, as well
RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;
ASSERT(rect3 != test);
CRect::operator +=
Pierwsze dwa przeciążenia są przenoszone CRect przez określone przesunięcia.
void operator+=(POINT point) throw();
void operator+=(SIZE size) throw();
void operator+=(LPCRECT lpRect) throw();
Parametry
point
Struktura POINT lub CPoint obiekt określający liczbę jednostek do przeniesienia prostokąta.
size
Struktura SIZE lub CSize obiekt określający liczbę jednostek do przeniesienia prostokąta.
lpRect
RECT Wskazuje strukturę lub CRect obiekt, który zawiera liczbę jednostek, aby zawyżać każdą stronę obiektu CRect.
Uwagi
Wartości parametrów x i y (lub cx i cy) są dodawane do CRectelementu .
Trzecie przeciążenie zawyża CRect liczbę jednostek określonych w każdym elemencie członkowskim parametru.
Przykład
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect rect2(135, 300, 235, 400);
rect1 += pt;
ASSERT(rect1 == rect2);
CRect::operator -=
Pierwsze dwa przeciążenia są przenoszone CRect przez określone przesunięcia.
void operator-=(POINT point) throw();
void operator-=(SIZE size) throw();
void operator-=(LPCRECT lpRect) throw();
Parametry
point
Struktura POINT lub CPoint obiekt określający liczbę jednostek do przeniesienia prostokąta.
size
Struktura SIZE lub CSize obiekt określający liczbę jednostek do przeniesienia prostokąta.
lpRect
RECT Wskazuje strukturę lub CRect obiekt, który zawiera liczbę jednostek do deflacji po każdej stronie CRect.
Uwagi
Wartości parametrów x i y (lub cx i cy) są odejmowane z CRect.
Trzecie przeciążenie jest deflate CRect przez liczbę jednostek określonych w każdym elemencie członkowskim parametru. Należy pamiętać, że to przeciążenie funkcji, takich jak DeflateRect.
Przykład
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
rect1 -= pt;
CRect rectResult(65, 170, 165, 270);
ASSERT(rect1 == rectResult);
CRect::operator &=
Ustawia CRect wartość równą przecięciu wartości CRect i rect.
void operator&=(const RECT& rect) throw();
Parametry
rect
Zawiera element RECT lub CRect.
Uwagi
Przecięcie jest największym prostokątem, który znajduje się w obu prostokątach.
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
Zobacz przykład dla elementu CRect::IntersectRect.
CRect::operator |=
Ustawia CRect wartość równą unii wartości CRect i rect.
void operator|=(const RECT& rect) throw();
Parametry
rect
Zawiera element CRect lub RECT.
Uwagi
Związek jest najmniejszym prostokątem zawierającym oba prostokąty źródłowe.
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
CRect rect1(100, 0, 200, 300);
CRect rect2(0, 100, 300, 200);
rect1 |= rect2;
CRect rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect1);
CRect::operator +
Pierwsze dwa przeciążenia zwracają CRect obiekt, który jest równy CRect przesiedleniu przez określone przesunięcia.
CRect operator+(POINT point) const throw();
CRect operator+(LPCRECT lpRect) const throw();
CRect operator+(SIZE size) const throw();
Parametry
point
Struktura POINT lub CPoint obiekt określający liczbę jednostek do przeniesienia wartości zwracanej.
size
Struktura SIZE lub CSize obiekt określający liczbę jednostek do przeniesienia wartości zwracanej.
lpRect
RECT Wskazuje strukturę lub CRect obiekt, który zawiera liczbę jednostek, aby zawyżać każdą stronę wartości zwracanej.
Wartość zwracana
Wynik CRect przenoszenia lub zawyżania CRect przez liczbę jednostek określonych w parametrze.
Uwagi
Parametry parametrów x i y (lub cx i cy) są dodawane do CRectpozycji .s.
Trzecie przeciążenie zwraca nowy CRect , który jest równy CRect zawyżonej liczbie jednostek określonych w każdym elemencie członkowskim parametru.
Przykład
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect rect2;
rect2 = rect1 + pt;
CRect rectResult(135, 300, 235, 400);
ASSERT(rectResult == rect2);
CRect::operator -
Pierwsze dwa przeciążenia zwracają CRect obiekt, który jest równy CRect przesiedleniu przez określone przesunięcia.
CRect operator-(POINT point) const throw();
CRect operator-(SIZE size) const throw();
CRect operator-(LPCRECT lpRect) const throw();
Parametry
point
Struktura POINT lub CPoint obiekt określający liczbę jednostek do przeniesienia wartości zwracanej.
size
Struktura SIZE lub CSize obiekt określający liczbę jednostek do przeniesienia wartości zwracanej.
lpRect
RECT Wskazuje strukturę lub CRect obiekt, który zawiera liczbę jednostek do deflacji każdej strony wartości zwracanej.
Wartość zwracana
Wynik CRect przenoszenia lub deflatingu CRect przez liczbę jednostek określonych w parametrze.
Uwagi
Parametry parametrów x i y (lub cx i cy) są odejmowane od CRectpozycji .
Trzecie przeciążenie zwraca nowy CRect , który jest równy CRect deflated przez liczbę jednostek określonych w każdym elemencie członkowskim parametru. Należy pamiętać, że to przeciążenie funkcji, takich jak DeflateRect, a nie SubtractRect.
Przykład
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect rect2;
rect2 = rect1 - pt;
CRect rectResult(65, 170, 165, 270);
ASSERT(rect2 == rectResult);
CRect::operator &
Zwraca element, który jest przecięciem CRectCRect i rect2.
CRect operator&(const RECT& rect2) const throw();
Parametry
rect2
Zawiera element RECT lub CRect.
Wartość zwracana
Element CRect , który jest przecięciem i CRectrect2.
Uwagi
Przecięcie jest największym prostokątem, który znajduje się w obu prostokątach.
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
CRect rect1(100, 0, 200, 300);
CRect rect2(0, 100, 300, 200);
CRect rect3;
rect3 = rect1 & rect2;
CRect rectResult(100, 100, 200, 200);
ASSERT(rectResult == rect3);
CRect::operator |
Zwraca wartość typu CRect , która jest unią wartości CRect i rect2.
CRect operator|(const RECT&
rect2) const throw();
Parametry
rect2
Zawiera element RECT lub CRect.
Wartość zwracana
A CRect to jest związek i CRectrect2.
Uwagi
Związek jest najmniejszym prostokątem zawierającym oba prostokąty.
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
CRect rect1(100, 0, 200, 300);
CRect rect2(0, 100, 300, 200);
CRect rect3;
rect3 = rect1 | rect2;
CRect rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect3);
CRect::PtInRect
Określa, czy określony punkt znajduje się w obiekcie CRect.
BOOL PtInRect(POINT point) const throw();
Parametry
point
POINT Zawiera strukturę lub CPoint obiekt.
Wartość zwracana
Nonzero, jeśli punkt leży w obrębie CRect; w przeciwnym razie 0.
Uwagi
Punkt znajduje się wewnątrz CRect , jeśli leży po lewej lub górnej stronie lub znajduje się po wszystkich czterech stronach. Punkt po prawej lub dolnej stronie znajduje się na zewnątrz CRect.
Uwaga
Prostokąt musi być znormalizowany lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokąta.
Przykład
CRect rect(5, 5, 100, 100);
CPoint pt1(35, 50);
CPoint pt2(125, 298);
// this is true, because pt1 is inside the rectangle
ASSERT(rect.PtInRect(pt1));
// this is NOT true, because pt2 is outside the rectangle
ASSERT(!rect.PtInRect(pt2));
// note that the right and the bottom aren't inside
ASSERT(!rect.PtInRect(CPoint(35, 100)));
ASSERT(!rect.PtInRect(CPoint(100, 98)));
// but the top and the left are inside
ASSERT(rect.PtInRect(CPoint(5, 65)));
ASSERT(rect.PtInRect(CPoint(88, 5)));
// and that PtInRect() works against a POINT, too
POINT pt;
pt.x = 35;
pt.y = 50;
ASSERT(rect.PtInRect(pt));
CRect::SetRect
Ustawia wymiary CRect określone współrzędnych.
void SetRect(int x1, int y1, int x2, int y2) throw();
Parametry
x1
Określa współrzędną x lewego górnego rogu.
y1
Określa współrzędną y lewego górnego rogu.
x2
Określa współrzędną x prawego dolnego rogu.
y2
Określa współrzędną y prawego dolnego rogu.
Przykład
CRect rect;
rect.SetRect(256, 256, 512, 512);
ASSERT(rect == CRect(256, 256, 512, 512));
CRect::SetRectEmpty
Tworzy CRect prostokąt o wartości null przez ustawienie wszystkich współrzędnych na zero.
void SetRectEmpty() throw();
Przykład
CRect rect;
rect.SetRectEmpty();
// rect is now (0, 0, 0, 0)
ASSERT(rect.IsRectEmpty());
CRect::SIZE
Elementy cx i cy wartości zwracanej zawierają wysokość i szerokość CRectelementu .
CSize Size() const throw();
Wartość zwracana
CSize Obiekt, który zawiera rozmiar CRect.
Uwagi
Wysokość lub szerokość mogą być ujemne.
Uwaga
Prostokąt musi być znormalizowany lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokąta.
Przykład
CRect rect(10, 10, 50, 50);
CSize sz = rect.Size();
ASSERT(sz.cx == 40 && sz.cy == 40);
CRect::SubtractRect
Sprawia, że wymiary CRect równe odejmowi lpRectSrc2 wartości z .lpRectSrc1
BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2) throw();
Parametry
lpRectSrc1
RECT Wskazuje strukturę lub CRect obiekt, z którego ma zostać odjęcie prostokąta.
lpRectSrc2
RECT Wskazuje strukturę lub CRect obiekt, który ma zostać odjęty od prostokąta wskazywanego lpRectSrc1 przez parametr .
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Odejmowanie jest najmniejszym prostokątem zawierającym wszystkie punkty, lpRectScr1 które nie znajdują się na przecięciu lpRectScr1 elementów i lpRectScr2.
Prostokąt określony przez lpRectSrc1 będzie niezmieniony, jeśli prostokąt określony przez lpRectSrc2 nie całkowicie nakłada się na prostokąt określony przez lpRectSrc1 co najmniej jeden z x- lub y-kierunkowych.
Na przykład w przypadku lpRectSrc1 wartości (10 10 10, 100 100) i lpRectSrc2 (50 50 50, 150 150), prostokąt wskazywany przez lpRectSrc1 będzie niezmieniony, gdy funkcja zwróci wartość. Gdyby lpRectSrc1 (10 10 10, 100 100) i lpRectSrc2 były (50,10, 150 150), jednak prostokąt wskazywany przez lpRectSrc1 będzie zawierał współrzędne (10 10,10, 50 100), gdy funkcja zwróciła.
SubtractRect nie jest taki sam jak operator - ani operator -=. Żaden z tych operatorów nigdy nie wywołuje elementu SubtractRect.
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
RECT rectOne;
RECT rectTwo;
rectOne.left = 10;
rectOne.top = 10;
rectOne.bottom = 100;
rectOne.right = 100;
rectTwo.left = 50;
rectTwo.top = 10;
rectTwo.bottom = 150;
rectTwo.right = 150;
CRect rectDiff;
rectDiff.SubtractRect(&rectOne, &rectTwo);
CRect rectResult(10, 10, 50, 100);
ASSERT(rectDiff == rectResult);
// works for CRect, too, since there is
// implicit CRect -> LPCRECT conversion
CRect rect1(10, 10, 100, 100);
CRect rect2(50, 10, 150, 150);
CRect rectOut;
rectOut.SubtractRect(rect1, rect2);
ASSERT(rectResult == rectOut);
CRect::TopLeft
Współrzędne są zwracane jako odwołanie do CPoint obiektu, który znajduje się w CRectobiekcie .
CPoint& TopLeft() throw();
const CPoint& TopLeft() const throw();
Wartość zwracana
Współrzędne lewego górnego rogu prostokąta.
Uwagi
Za pomocą tej funkcji można uzyskać lub ustawić lewy górny róg prostokąta. Ustaw narożnik przy użyciu tej funkcji po lewej stronie operatora przypisania.
Przykład
Zobacz przykład dla elementu CRect::CenterPoint.
CRect::UnionRect
Sprawia, że wymiary CRect równe unii dwóch prostokątów źródłowych.
BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Parametry
lpRect1
Wskazuje element RECT lub CRect , który zawiera prostokąt źródłowy.
lpRect2
Wskazuje element RECT lub CRect , który zawiera prostokąt źródłowy.
Wartość zwracana
Nonzero, jeśli unia nie jest pusta; 0, jeśli unia jest pusta.
Uwagi
Związek jest najmniejszym prostokątem zawierającym oba prostokąty źródłowe.
System Windows ignoruje wymiary pustego prostokąta; oznacza to, prostokąt, który nie ma wysokości lub nie ma szerokości.
Uwaga
Oba prostokąty muszą być znormalizowane lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokątów.
Przykład
CRect rect1(100, 0, 200, 300);
CRect rect2(0, 100, 300, 200);
CRect rect3;
rect3.UnionRect(&rect1, &rect2);
CRect rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect3);
CRect::Width
Oblicza szerokość, CRect odejmując lewą wartość z prawej wartości.
int Width() const throw();
Wartość zwracana
Szerokość elementu CRect.
Uwagi
Szerokość może być ujemna.
Uwaga
Prostokąt musi być znormalizowany lub ta funkcja może zakończyć się niepowodzeniem. Przed wywołaniem tej funkcji można wywołać NormalizeRect metodę normalizacji prostokąta.
Przykład
CRect rect(20, 30, 80, 70);
int nWid = rect.Width();
// nWid is now 60
ASSERT(nWid == 60);