Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows RECT yapısına benzer.
Sözdizimi
class CRect : public tagRECT
Üyeler
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
CRect::CRect |
Bir CRect nesne oluşturur. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
CRect::BottomRight |
öğesinin sağ alt noktasını CRectdöndürür. |
CRect::CenterPoint |
öğesinin merkez noktasını CRectdöndürür. |
CRect::CopyRect |
Kaynak dikdörtgenin boyutlarını öğesine CRectkopyalar. |
CRect::DeflateRect |
genişliğini ve yüksekliğini CRectazaltır. |
CRect::EqualRect |
Verilen dikdörtgene eşit olup olmadığını CRect belirler. |
CRect::Height |
yüksekliğini CRecthesaplar. |
CRect::InflateRect |
genişliğini ve yüksekliğini CRectartırır. |
CRect::IntersectRect |
İki dikdörtgenin kesişimine eşit ayarlar CRect . |
CRect::IsRectEmpty |
Boş olup olmadığını CRect belirler.
CRect genişlik ve/veya yükseklik 0 ise boş olur. |
CRect::IsRectNull |
, , topbottomve left üye değişkenlerinin tümünün right0'a eşit olup olmadığını belirler. |
CRect::MoveToX |
Belirtilen x koordinatını taşır CRect . |
CRect::MoveToXY |
Belirtilen x ve y koordinatlarına taşınır CRect . |
CRect::MoveToY |
Belirtilen y koordinatını taşır CRect . |
CRect::NormalizeRect |
yüksekliğini ve genişliğini CRectstandartlaştırır. |
CRect::OffsetRect |
Belirtilen uzaklıklara göre hareket CRect eder. |
CRect::PtInRect |
Belirtilen noktanın içinde CRectolup olmadığını belirler. |
CRect::SetRect |
boyutlarını CRectayarlar. |
CRect::SetRectEmpty |
Boş bir dikdörtgene ayarlar CRect (tüm koordinatlar 0'a eşittir). |
CRect::Size |
boyutunu CRecthesaplar. |
CRect::SubtractRect |
Bir dikdörtgeni diğerinden çıkarır. |
CRect::TopLeft |
öğesinin sol üst noktasını CRectdöndürür. |
CRect::UnionRect |
İki dikdörtgenin birleşimine eşit ayarlar CRect . |
CRect::Width |
genişliğini CRecthesaplar. |
Ortak İşleçler
| Veri Akışı Adı | Açıklama |
|---|---|
CRect::operator - |
Verilen uzaklıkları içinden CRect çıkarır veya söndürer CRect ve sonuçta CRectelde edilen değerini döndürür. |
CRect::operator LPCRECT |
bir'i CRect öğesine LPCRECTdönüştürür. |
CRect::operator LPRECT |
bir'i CRect öğesine LPRECTdönüştürür. |
CRect::operator != |
Dikdörtgene eşit olup olmadığını CRect belirler. |
CRect::operator & |
ile dikdörtgenin kesişimini CRect oluşturur ve sonuçta elde edilen CRectdeğerini döndürür. |
CRect::operator &= |
ve dikdörtgenin kesişimine CRect eşit ayarlarCRect. |
CRect::operator | |
ve dikdörtgeninin birleşimini CRect oluşturur ve sonuçta elde edilen CRectdeğerini döndürür. |
CRect::operator |= |
ve bir dikdörtgenin birleşimine CRect eşit ayarlarCRect. |
CRect::operator + |
Verilen uzaklıkları öğesine CRect ekler veya şişirir CRect ve sonuçta CRectelde edilen değerini döndürür. |
CRect::operator += |
Belirtilen uzaklıkları öğesine CRect ekler veya şişirir CRect. |
CRect::operator = |
Dikdörtgenin boyutlarını öğesine CRectkopyalar. |
CRect::operator -= |
Belirtilen uzaklıkları içinden CRect çıkarır veya söndürebilir CRect. |
CRect::operator == |
Dikdörtgene eşit olup olmadığını CRect belirler. |
Açıklamalar
CRectayrıca nesneleri ve Windows CRect yapılarını işlemek RECT için üye işlevleri içerir.
Bir CRect nesne, bir yapı olan RECTher yerde LPCRECT işlev parametresi olarak geçirilebilir veya LPRECT geçirilebilir.
Not
Bu sınıf yapısından tagRECT türetilir. (Ad tagRECT , yapı için RECT daha az yaygın kullanılan bir addır.) Bu, yapının veri üyelerinin (left, top, rightve bottom) RECT erişilebilir veri üyeleri CRectolduğu anlamına gelir.
A CRect , bir dikdörtgenin sol üst ve sağ alt noktalarını tanımlayan üye değişkenleri içerir.
belirtirken CRect, bunu normalleştirilecek şekilde, diğer bir deyişle, sol koordinatın değeri sağdan küçük ve üst alttan küçük olacak şekilde oluşturmak için dikkatli olmanız gerekir. Örneğin, (20,20) öğesinin sol üst (10,10) ve sağ alt kısmı normalleştirilmiş bir dikdörtgen tanımlar, ancak sol üst (20,20) ve sağ alt (10,10) normalleştirilmemiş bir dikdörtgen tanımlar. Dikdörtgen normalleştirilmemişse, birçok CRect üye işlevi yanlış sonuçlar döndürebilir. (Bu işlevlerin listesi için bkz CRect::NormalizeRect . Normalleştirilmiş dikdörtgenler gerektiren bir işlevi çağırmadan önce, işlevi çağırarak NormalizeRect normalleştirilmemiş dikdörtgenleri normalleştirebilirsiniz.
ve CRect üye işlevleriyle CDC::DPtoLP bir'i CDC::LPtoDP düzenlerken dikkatli olun. Görüntü bağlamının eşleme modu, içinde olduğu gibi y-extent negatif olacak şekildeyseMM_LOENGLISHCDC::DPtoLP, öğesini dönüştürerek CRect üst öğesini alttan büyük olur. ve gibi HeightSize işlevler dönüştürülen CRectöğesinin yüksekliği için negatif değerler döndürür ve dikdörtgen normalleştirilmeyecektir.
Aşırı yüklenmiş CRect işleçler kullanılırken, ilk işlenen bir CRectolmalıdır; ikincisi bir RECT yapı veya nesne CRect olabilir.
Devralma Hiyerarşisi
tagRECT
CRect
Gereksinimler
Üstbilgi:atltypes.h
CRect::BottomRight
Koordinatlar içinde bulunan CPointbir CRect nesneye başvuru olarak döndürülür.
CPoint& BottomRight() throw();
const CPoint& BottomRight() const throw();
Dönüş Değeri
Dikdörtgenin sağ alt köşesinin koordinatları.
Açıklamalar
Dikdörtgenin sağ alt köşesini almak veya ayarlamak için bu işlevi kullanabilirsiniz. Atama işlecinin sol tarafındaki bu işlevi kullanarak köşeyi ayarlayın.
Örnek
// 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
Sol ve sağ değerleri ekleyerek ve ikiye bölerek, üst ve alt değerleri ekleyip ikiye bölerek öğesinin merkez noktasını CRect hesaplar.
CPoint CenterPoint() const throw();
Dönüş Değeri
CPoint öğesinin merkez noktası CRectolan bir nesne.
Örnek
// 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
Dikdörtgeni lpSrcRect içine CRectkopyalar.
void CopyRect(LPCRECT lpSrcRect) throw();
Parametreler
lpSrcRect
RECT Kopyalanacak yapıyı veya CRect nesneyi gösterir.
Örnek
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
Bir CRect nesne oluşturur.
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();
Parametreler
l
öğesinin sol konumunu CRectbelirtir.
t
öğesinin üst kısmını CRectbelirtir.
r
öğesinin doğru konumunu CRectbelirtir.
b
öğesinin alt kısmını CRectbelirtir.
srcRect
RECT için koordinatları olan yapıyı ifade ederCRect.
lpSrcRect
RECT için koordinatları olan yapıya işaret ederCRect.
point
Dikdörtgenin oluşturulacağı çıkış noktasını belirtir. Sol üst köşeye karşılık gelir.
size
Oluşturulacak dikdörtgenin sol üst köşesinden sağ alt köşesine yer değiştirme işlemini belirtir.
topLeft
öğesinin sol üst konumunu CRectbelirtir.
bottomRight
öğesinin sağ alt konumunu CRectbelirtir.
Açıklamalar
Bağımsız değişken verilmezse, left, top, rightve bottom üyeleri 0 olarak ayarlanır.
CRect(const RECT&) ve CRect(LPCRECT) oluşturucuları bir CopyRectgerçekleştirir. Diğer oluşturucular nesnenin üye değişkenlerini doğrudan başlatır.
Örnek
// 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 yanlarını merkezine doğru hareket ettirerek söndürün CRect .
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();
Parametreler
x
öğesinin sol ve sağ kenarlarının CRectsöndürileceği birim sayısını belirtir.
y
öğesinin üst ve alt CRectkısmının söndürileceği birim sayısını belirtir.
size
A SIZE veya CSize boşaltacak CRectbirim sayısını belirtir.
cx değeri, sol ve sağ kenarların söndürileceği birim sayısını, değer ise cy üst ve alt kısımdaki birimlerin sayısını belirtir.
lpRect
Bir RECT yapıya işaret eder veya CRect her kenarın söndürileceği birim sayısını belirtir.
l
sol tarafının CRectsöndürileceği birim sayısını belirtir.
t
öğesinin üst CRectkısmının söndürileceği birim sayısını belirtir.
r
sağ tarafının CRectsöndürileceği birim sayısını belirtir.
b
öğesinin alt CRectkısmının söndürileceği birim sayısını belirtir.
Açıklamalar
Bunu yapmak için, DeflateRect birimleri sola ve üste ekler ve sağdan ve alttan çıkarır. parametreleri DeflateRect imzalı değerlerdir; pozitif değerler şişer CRect ve negatif değerler onu şişirir.
İlk iki aşırı yükleme, toplam genişliğinin iki kez (veya ) ve toplam yüksekliğinin iki kez CRectx (cxveya y) azalması için her iki karşı taraf cy çiftini de söndürmektedir. Diğer iki aşırı yükleme, diğer iki aşırı yüklemeden bağımsız olarak her iki CRect tarafını da söndürmektedir.
Örnek
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
Verilen dikdörtgene eşit olup olmadığını CRect belirler.
BOOL EqualRect(LPCRECT lpRect) const throw();
Parametreler
lpRect
Dikdörtgenin RECT sol üst ve sağ alt köşe koordinatlarını içeren bir yapıya veya CRect nesneye işaret eder.
Dönüş Değeri
İki dikdörtgen aynı üst, sol, alt ve sağ değerlere sahipse sıfır olmayan; aksi takdirde 0.
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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
En üstteki değeri alt değerden çıkararak yüksekliğini CRect hesaplar.
int Height() const throw();
Dönüş Değeri
yüksekliği CRect.
Açıklamalar
Sonuçta elde edilen değer negatif olabilir.
Not
Dikdörtgen normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgeni normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
CRect rect(20, 30, 80, 70);
int nHt = rect.Height();
// nHt is now 40
ASSERT(nHt == 40);
CRect::InflateRect
InflateRect yanlarını merkezinden uzaklaştırarak şişirir CRect .
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();
Parametreler
x
öğesinin sol ve sağ kenarlarını CRectşişirmek için birim sayısını belirtir.
y
öğesinin üst ve alt CRectkısmını şişirmek için birim sayısını belirtir.
size
şişirmek SIZECSizeiçin birim sayısını belirten bir veya CRect .
cx değeri, sol ve sağ kenarları şişirmek için birim sayısını, cy üst ve altta şişirmek için birim sayısını belirtir.
lpRect
Bir RECT yapıya işaret eder veya CRect her bir tarafı şişirmek için birim sayısını belirtir.
l
öğesinin sol tarafını CRectşişirmek için birim sayısını belirtir.
t
öğesinin üst CRectkısmını şişirmek için birim sayısını belirtir.
r
öğesinin sağ tarafını CRectşişirmek için birim sayısını belirtir.
b
öğesinin alt CRectkısmını şişirmek için birim sayısını belirtir.
Açıklamalar
Bunu yapmak için, InflateRect birimleri soldan ve üstten çıkarır ve sağ ve alta birim ekler. parametreleri InflateRect imzalı değerlerdir; pozitif değerler şişirilir CRect ve negatif değerler onu şişirir.
İlk iki aşırı yükleme, toplam genişliğinin iki kat (veya ) artırılması ve toplam yüksekliğinin CRect iki kat xcx (veya ycy) artırılması için her iki karşıt tarafının çiftini de şişirir. Diğer iki aşırı yükleme, diğerlerinden bağımsız olarak her iki CRect tarafını şişirir.
Örnek
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
Mevcut iki dikdörtgenin kesişimine eşit olur CRect .
BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Parametreler
lpRect1
Kaynak dikdörtgen içeren bir RECT yapıyı veya CRect nesneyi gösterir.
lpRect2
Kaynak dikdörtgen içeren bir RECT yapıyı veya CRect nesneyi gösterir.
Dönüş Değeri
Kesişim boş değilse sıfır olmayan; Kesişim boşsa 0.
Açıklamalar
Kesişim, mevcut dikdörtgenlerin her ikisinde de bulunan en büyük dikdörtgendir.
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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
Boş olup olmadığını CRect belirler.
BOOL IsRectEmpty() const throw();
Dönüş Değeri
Boşsa CRect sıfır olmayan; boş değilse CRect 0.
Açıklamalar
Genişlik ve/veya yükseklik 0 veya negatifse dikdörtgen boş olur. dikdörtgenin IsRectNulltüm koordinatlarının sıfır olup olmadığını belirleyen ile farklıdır.
Not
Dikdörtgen normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgeni normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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
öğesinin üst, sol, alt ve sağ değerlerinin CRect 0'a eşit olup olmadığını belirler.
BOOL IsRectNull() const throw();
Dönüş Değeri
Sıfır olmayan değer ise CRectüst, sol, alt ve sağ değerlerinin tümü 0'a eşittir; aksi takdirde 0'dır.
Açıklamalar
dikdörtgenin boş olup olmadığını belirleyen ile IsRectEmptyfarklıdır.
Örnek
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
Dikdörtgeni tarafından xbelirtilen mutlak x koordinatlarına taşımak için bu işlevi çağırın.
void MoveToX(int x) throw();
Parametreler
x
Dikdörtgenin sol üst köşesi için mutlak x koordinatı.
Örnek
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
Dikdörtgeni belirtilen mutlak x ve y koordinatlarına taşımak için bu işlevi çağırın.
void MoveToXY(int x, int y) throw();
void MoveToXY(POINT point) throw();
Parametreler
x
Dikdörtgenin sol üst köşesi için mutlak x koordinatı.
y
Dikdörtgenin sol üst köşesi için mutlak y koordinatı.
point
POINT Dikdörtgenin mutlak sol üst köşesini belirten bir yapı.
Örnek
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
Dikdörtgeni tarafından ybelirtilen mutlak y koordinatını taşımak için bu işlevi çağırın.
void MoveToY(int y) throw();
Parametreler
y
Dikdörtgenin sol üst köşesi için mutlak y koordinatı.
Örnek
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
Hem yükseklik hem de genişlik pozitif olacak şekilde normalleştirir CRect .
void NormalizeRect() throw();
Açıklamalar
Dikdörtgen, Windows'un genellikle koordinatlar için kullandığı dördüncü çeyrek konumlandırma için normalleştirilir.
NormalizeRect üst ve alt değerleri karşılaştırır ve üst değer alttan büyükse bunları değiştirir. Benzer şekilde, sol ve sağdan büyükse, sol ve sağ değerleri değiştirir. Bu işlev, farklı eşleme modları ve ters dikdörtgenlerle çalışırken kullanışlıdır.
Not
Aşağıdaki CRect üye işlevleri düzgün çalışmak için normalleştirilmiş dikdörtgenler gerektirir: Height, Width, Size, IsRectEmpty, PtInRect, , EqualRect, UnionRect, IntersectRect, SubtractRect, , operator ==, operator !=operator |operator |=operator &ve .operator &=
Örnek
CRect rect1(110, 100, 250, 310);
CRect rect2(250, 310, 110, 100);
rect1.NormalizeRect();
rect2.NormalizeRect();
ASSERT(rect1 == rect2);
CRect::OffsetRect
Belirtilen uzaklıklara göre hareket CRect eder.
void OffsetRect(int x, int y) throw();
void OffsetRect(POINT point) throw();
void OffsetRect(SIZE size) throw();
Parametreler
x
Sola veya sağa taşınacak miktarı belirtir. Sola gitmek için negatif olmalıdır.
y
Yukarı veya aşağı taşınacak miktarı belirtir. Yukarı taşımak için negatif olmalıdır.
point
Taşınacak her iki boyutu da belirten bir POINT yapı veya CPoint nesne içerir.
size
Taşınacak her iki boyutu da belirten bir SIZE yapı veya CSize nesne içerir.
Açıklamalar
Birimleri x ekseni boyunca ve CRect birimleri y ekseni boyunca taşır.xy
x ve y parametreleri imzalı değerlerdir, bu nedenle CRect sola veya sağa, yukarı veya aşağı taşınabilir.
Örnek
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
bir'i CRect öğesine LPCRECTdönüştürür.
operator LPCRECT() const throw();
Açıklamalar
Bu işlevi kullandığınızda, adres (&) işlecine ihtiyacınız yoktur. Bu işleç, bir nesnesini bekleyen CRectbir LPCRECT işleve geçirdiğinizde otomatik olarak kullanılır.
CRect::operator LPRECT
bir'i CRect öğesine LPRECTdönüştürür.
operator LPRECT() throw();
Açıklamalar
Bu işlevi kullandığınızda, adres (&) işlecine ihtiyacınız yoktur. Bu işleç, bir nesnesini bekleyen CRectbir LPRECT işleve geçirdiğinizde otomatik olarak kullanılır.
Örnek
örneğine CRect::operator LPCRECTbakın.
CRect::operator =
srcRect öğesine CRectatar.
void operator=(const RECT& srcRect) throw();
Parametreler
srcRect
Kaynak dikdörtgene başvurur. veya RECTolabilirCRect.
Örnek
CRect rect(0, 0, 127, 168);
CRect rect2;
rect2 = rect;
ASSERT(rect2 == CRect(0, 0, 127, 168));
CRect::operator ==
Sol üst ve sağ alt köşelerinin koordinatlarını karşılaştırarak eşit rect olup olmadığını CRect belirler.
BOOL operator==(const RECT& rect) const throw();
Parametreler
rect
Kaynak dikdörtgene başvurur. veya RECTolabilirCRect.
Dönüş Değeri
Sıfır olmayan eşitse; aksi takdirde 0.
Açıklamalar
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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 !=
Sol üst ve sağ alt köşelerinin koordinatlarını karşılaştırarak eşit rect olup olmadığını CRect belirler.
BOOL operator!=(const RECT& rect) const throw();
Parametreler
rect
Kaynak dikdörtgene başvurur. veya RECTolabilirCRect.
Dönüş Değeri
Eşit değilse sıfır olmayan; aksi takdirde 0.
Açıklamalar
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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 +=
İlk iki aşırı yükleme, belirtilen uzaklıklara göre taşınır CRect .
void operator+=(POINT point) throw();
void operator+=(SIZE size) throw();
void operator+=(LPCRECT lpRect) throw();
Parametreler
point
POINT Dikdörtgenin taşınacak birim sayısını belirten bir yapı veya CPoint nesne.
size
SIZE Dikdörtgenin taşınacak birim sayısını belirten bir yapı veya CSize nesne.
lpRect
öğesinin her tarafını RECTşişirmek için birim sayısını içeren bir CRect yapıyı veya CRect nesneyi gösterir.
Açıklamalar
parametresinin x ve y (veya cx ve cy) değerleri öğesine CRecteklenir.
Üçüncü aşırı yükleme, parametrenin her üyesinde belirtilen birim sayısına göre şişirir CRect .
Örnek
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect rect2(135, 300, 235, 400);
rect1 += pt;
ASSERT(rect1 == rect2);
CRect::operator -=
İlk iki aşırı yükleme, belirtilen uzaklıklara göre taşınır CRect .
void operator-=(POINT point) throw();
void operator-=(SIZE size) throw();
void operator-=(LPCRECT lpRect) throw();
Parametreler
point
POINT Dikdörtgenin taşınacak birim sayısını belirten bir yapı veya CPoint nesne.
size
SIZE Dikdörtgenin taşınacak birim sayısını belirten bir yapı veya CSize nesne.
lpRect
öğesinin her tarafının söndürileceği birim sayısını içeren bir RECT yapıya veya CRect nesneye CRectişaret etti.
Açıklamalar
Parametrenin x ve y (veya cx ve cy) değerleri değerinden CRectçıkarılır.
Üçüncü aşırı yükleme, parametrenin her bir üyesinde belirtilen birim sayısına göre şişer CRect . Bu aşırı yüklemenin gibi DeflateRectçalıştığını unutmayın.
Örnek
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
rect1 -= pt;
CRect rectResult(65, 170, 165, 270);
ASSERT(rect1 == rectResult);
CRect::operator &=
ve CRectkesişimine CRect eşit ayarlarrect.
void operator&=(const RECT& rect) throw();
Parametreler
rect
RECT veya CRectiçerir.
Açıklamalar
Kesişim, her iki dikdörtgende de bulunan en büyük dikdörtgendir.
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
örneğine CRect::IntersectRectbakın.
CRect::operator |=
ve CRectbirleşimine CRect eşit ayarlarrect.
void operator|=(const RECT& rect) throw();
Parametreler
rect
CRect veya RECTiçerir.
Açıklamalar
Birleşim, her iki kaynak dikdörtgeni de içeren en küçük dikdörtgendir.
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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 +
İlk iki aşırı yükleme, belirtilen uzaklıklar tarafından yerinden edilene CRect eşit bir CRect nesne döndürür.
CRect operator+(POINT point) const throw();
CRect operator+(LPCRECT lpRect) const throw();
CRect operator+(SIZE size) const throw();
Parametreler
point
POINT Dönüş değerinin taşınacak birim sayısını belirten bir yapı veya CPoint nesne.
size
SIZE Dönüş değerinin taşınacak birim sayısını belirten bir yapı veya CSize nesne.
lpRect
Dönüş değerinin her tarafını şişirmek için birim sayısını içeren bir RECT yapıyı veya CRect nesneyi gösterir.
Dönüş Değeri
CRect Parametresinde belirtilen birim sayısının taşınmasından veya şişirilmesinden CRect elde edilen sonuç.
Açıklamalar
parametresinin x ve y (veya cx ve cy) parametreleri 'nin konumuna CRecteklenir.
Üçüncü aşırı yükleme, parametrenin CRect her bir üyesinde belirtilen birim sayısıyla şişirilmiş olan yeni CRect bir değer döndürür.
Örnek
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 -
İlk iki aşırı yükleme, belirtilen uzaklıklar tarafından yerinden edilene CRect eşit bir CRect nesne döndürür.
CRect operator-(POINT point) const throw();
CRect operator-(SIZE size) const throw();
CRect operator-(LPCRECT lpRect) const throw();
Parametreler
point
POINT Dönüş değerinin taşınacak birim sayısını belirten bir yapı veya CPoint nesne.
size
SIZE Dönüş değerinin taşınacak birim sayısını belirten bir yapı veya CSize nesne.
lpRect
Dönüş değerinin her tarafını söndürecek birim sayısını içeren bir RECT yapıya veya CRect nesneye işaret edin.
Dönüş Değeri
CRect Parametresinde belirtilen birim sayısına göre taşıma veya sönme CRect sonucu elde edilen.
Açıklamalar
Parametrenin x ve y (veya cx ve cy) parametreleri 'nin konumundan CRectçıkarılır.
Üçüncü aşırı yükleme, parametrenin her üyesinde belirtilen birim sayısıyla sönmeye CRect eşit bir yeni CRect döndürür. Bu aşırı yüklemenin yerine DeflateRectgibi SubtractRectçalıştığını unutmayın.
Örnek
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 &
ve CRectCRect kesişimi olan bir döndürür.
CRect operator&(const RECT& rect2) const throw();
Parametreler
rect2
RECT veya CRectiçerir.
Dönüş Değeri
CRect ve CRect'nin rect2 kesişimi olan bir.
Açıklamalar
Kesişim, her iki dikdörtgende de bulunan en büyük dikdörtgendir.
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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 |
ve CRectbirleşimi olan CRect bir rect2 döndürür.
CRect operator|(const RECT&
rect2) const throw();
Parametreler
rect2
RECT veya CRectiçerir.
Dönüş Değeri
CRect ve CRect'nin rect2 birleşimi olan bir.
Açıklamalar
Birleşim, her iki dikdörtgeni de içeren en küçük dikdörtgendir.
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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
Belirtilen noktanın içinde CRectolup olmadığını belirler.
BOOL PtInRect(POINT point) const throw();
Parametreler
point
Bir POINT yapı veya CPoint nesne içerir.
Dönüş Değeri
Nokta içindeyse CRectsıfır olmayan ; aksi takdirde 0.
Açıklamalar
Nokta, sol tarafta veya üst taraftaysa veya dört tarafın içindeyse içindedir CRect . Sağ veya alt taraftaki bir nokta dışındadır CRect.
Not
Dikdörtgen normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgeni normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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
boyutlarını CRect belirtilen koordinatlara ayarlar.
void SetRect(int x1, int y1, int x2, int y2) throw();
Parametreler
x1
Sol üst köşenin x koordinatını belirtir.
y1
Sol üst köşenin y koordinatını belirtir.
x2
Sağ alt köşenin x koordinatını belirtir.
y2
Sağ alt köşenin y koordinatını belirtir.
Örnek
CRect rect;
rect.SetRect(256, 256, 512, 512);
ASSERT(rect == CRect(256, 256, 512, 512));
CRect::SetRectEmpty
Tüm koordinatları sıfır olarak ayarlayarak null dikdörtgen oluşturur CRect .
void SetRectEmpty() throw();
Örnek
CRect rect;
rect.SetRectEmpty();
// rect is now (0, 0, 0, 0)
ASSERT(rect.IsRectEmpty());
CRect::SIZE
cx dönüş değerinin ve cy üyeleri, yüksekliğini ve genişliğini CRectiçerir.
CSize Size() const throw();
Dönüş Değeri
CSize boyutunu CRectiçeren bir nesne.
Açıklamalar
Yükseklik veya genişlik negatif olabilir.
Not
Dikdörtgen normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgeni normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
CRect rect(10, 10, 50, 50);
CSize sz = rect.Size();
ASSERT(sz.cx == 40 && sz.cy == 40);
CRect::SubtractRect
boyutlarını' CRect dan lpRectSrc2çıkarma değerine lpRectSrc1 eşit hale getirir.
BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2) throw();
Parametreler
lpRectSrc1
Bir dikdörtgenin RECT çıkarılacağı yapıyı veya CRect nesneyi gösterir.
lpRectSrc2
parametresi tarafından işaret edilen RECT dikdörtgenden çıkarılacak yapıyı CRect veya lpRectSrc1 nesneyi gösterir.
Dönüş Değeri
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Açıklamalar
Çıkarma, ve lpRectScr1kesişiminde olmayan tüm noktaları lpRectScr1 içeren en küçük dikdörtgendirlpRectScr2.
tarafından belirtilen dikdörtgen x veya y yönlerinden en az birinde tarafından lpRectSrc1 belirtilen dikdörtgenle tamamen çakışmazsalpRectSrc2, tarafından lpRectSrc1 belirtilen dikdörtgen değiştirilmez.
Örneğin, (10,10, 100,100) ve lpRectSrc1 (50,50, 150,150) iselpRectSrc2, işlevi döndürdüğnde tarafından lpRectSrc1 işaret edilen dikdörtgen değiştirilmez. Eğer (10,10, 100,100) ve lpRectSrc1 (50,10, 150,150) iselpRectSrc2, ancak tarafından lpRectSrc1 işaret edilen dikdörtgen işlevin döndüreceği koordinatları (10,10, 50,100) içerir.
SubtractRectişleç - veya işleci -=ile aynı değildir. Bu işleçlerden hiçbiri çağrı SubtractRectyapmaz.
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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
Koordinatlar içinde bulunan CPointbir CRect nesneye başvuru olarak döndürülür.
CPoint& TopLeft() throw();
const CPoint& TopLeft() const throw();
Dönüş Değeri
Dikdörtgenin sol üst köşesinin koordinatları.
Açıklamalar
Dikdörtgenin sol üst köşesini almak veya ayarlamak için bu işlevi kullanabilirsiniz. Atama işlecinin sol tarafındaki bu işlevi kullanarak köşeyi ayarlayın.
Örnek
örneğine CRect::CenterPointbakın.
CRect::UnionRect
boyutlarını CRect iki kaynak dikdörtgenin birleşimine eşit hale getirir.
BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Parametreler
lpRect1
Kaynak dikdörtgen içeren veya RECTCRect öğesini gösterir.
lpRect2
Kaynak dikdörtgen içeren veya RECTCRect öğesini gösterir.
Dönüş Değeri
Birleşim boş değilse sıfır olmayan; Birleşim boşsa 0.
Açıklamalar
Birleşim, her iki kaynak dikdörtgeni de içeren en küçük dikdörtgendir.
Windows boş bir dikdörtgenin boyutlarını yoksayar; başka bir ifadeyle, yüksekliği olmayan veya genişliği olmayan bir dikdörtgen.
Not
Dikdörtgenlerin her ikisi de normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgenleri normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
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
Sol değeri sağ değerden çıkararak genişliğini CRect hesaplar.
int Width() const throw();
Dönüş Değeri
genişliği CRect.
Açıklamalar
Genişlik negatif olabilir.
Not
Dikdörtgen normalleştirilmelidir, aksi durumda bu işlev başarısız olabilir. Bu işlevi çağırmadan önce dikdörtgeni normalleştirmek için çağırabilirsiniz NormalizeRect .
Örnek
CRect rect(20, 30, 80, 70);
int nWid = rect.Width();
// nWid is now 60
ASSERT(nWid == 60);