CRect
Sınıf
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ı CRect döndürür. |
CRect::CenterPoint |
öğesinin merkez noktasını CRect döndürür. |
CRect::CopyRect |
Kaynak dikdörtgenin boyutlarını öğesine CRect kopyalar. |
CRect::DeflateRect |
genişliğini ve yüksekliğini CRect azaltır. |
CRect::EqualRect |
Verilen dikdörtgene eşit olup olmadığını CRect belirler. |
CRect::Height |
yüksekliğini CRect hesaplar. |
CRect::InflateRect |
genişliğini ve yüksekliğini CRect artı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 |
, , bottom left ve right üye değişkenlerinin tümünün top 0'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 CRect standartlaştırır. |
CRect::OffsetRect |
Belirtilen uzaklıklara göre hareket CRect eder. |
CRect::PtInRect |
Belirtilen noktanın içinde CRect olup olmadığını belirler. |
CRect::SetRect |
boyutlarını CRect ayarlar. |
CRect::SetRectEmpty |
Boş bir dikdörtgene ayarlar CRect (tüm koordinatlar 0'a eşittir). |
CRect::Size |
boyutunu CRect hesaplar. |
CRect::SubtractRect |
Bir dikdörtgeni diğerinden çıkarır. |
CRect::TopLeft |
öğesinin sol üst noktasını CRect döndürür. |
CRect::UnionRect |
İki dikdörtgenin birleşimine eşit ayarlar CRect . |
CRect::Width |
genişliğini CRect hesaplar. |
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 CRect elde edilen değerini döndürür. |
CRect::operator LPCRECT |
bir'i CRect öğesine LPCRECT dönüştürür. |
CRect::operator LPRECT |
bir'i CRect öğesine LPRECT dö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 CRect değ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 CRect değ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 CRect elde 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 CRect kopyalar. |
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
CRect
ayrıca nesneleri ve Windows RECT
yapılarını işlemek CRect
için üye işlevleri içerir.
Bir CRect
nesne, bir yapı olan LPCRECT
her yerde RECT
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
, right
ve bottom
) RECT
erişilebilir veri üyeleri CRect
olduğ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 CDC::LPtoDP
üye işlevleriyle CDC::DPtoLP
bir'i CRect
düzenlerken dikkatli olun. Görüntü bağlamının eşleme modu, içinde olduğu gibi y-extent negatif olacak şekildeyseMM_LOENGLISH
CDC::DPtoLP
, öğesini dönüştürerek CRect
üst öğesini alttan büyük olur. ve gibi Height
Size
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 CRect
olmalı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 CRect
bir CPoint
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ı CRect
olan 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 CRect
kopyalar.
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 CRect
belirtir.
t
öğesinin üst kısmını CRect
belirtir.
r
öğesinin doğru konumunu CRect
belirtir.
b
öğesinin alt kısmını CRect
belirtir.
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 CRect
belirtir.
bottomRight
öğesinin sağ alt konumunu CRect
belirtir.
Açıklamalar
Bağımsız değişken verilmezse, left
, top
, right
ve bottom
üyeleri 0 olarak ayarlanır.
CRect
(const RECT&
) ve CRect
(LPCRECT
) oluşturucuları bir CopyRect
gerç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 CRect
söndürileceği birim sayısını belirtir.
y
öğesinin üst ve alt CRect
kısmının söndürileceği birim sayısını belirtir.
size
A SIZE
veya CSize
boşaltacak CRect
birim 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 CRect
söndürileceği birim sayısını belirtir.
t
öğesinin üst CRect
kısmının söndürileceği birim sayısını belirtir.
r
sağ tarafının CRect
söndürileceği birim sayısını belirtir.
b
öğesinin alt CRect
kı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 y
x
(cy
veya cx
) azalması için her iki karşı taraf CRect
ç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 CRect
kısmını şişirmek için birim sayısını belirtir.
size
şişirmek SIZE
CRect
için birim sayısını belirten bir veya CSize
. 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 CRect
kı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 CRect
kı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 x
y
(veya cx
cy
) 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 IsRectNull
tü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 IsRectEmpty
farklı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 x
belirtilen 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 y
belirtilen 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 y
birimleri y ekseni boyunca taşır.CRect
x
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 LPCRECT
dö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 LPCRECT
bir CRect
işleve geçirdiğinizde otomatik olarak kullanılır.
CRect::operator LPRECT
bir'i CRect
öğesine LPRECT
dö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 LPRECT
bir CRect
işleve geçirdiğinizde otomatik olarak kullanılır.
Örnek
örneğine CRect::operator LPCRECT
bakın.
CRect::operator =
srcRect
öğesine CRect
atar.
void operator=(const RECT& srcRect) throw();
Parametreler
srcRect
Kaynak dikdörtgene başvurur. veya CRect
olabilirRECT
.
Ö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 CRect
olup olmadığını rect
belirler.
BOOL operator==(const RECT& rect) const throw();
Parametreler
rect
Kaynak dikdörtgene başvurur. veya CRect
olabilirRECT
.
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 CRect
olup olmadığını rect
belirler.
BOOL operator!=(const RECT& rect) const throw();
Parametreler
rect
Kaynak dikdörtgene başvurur. veya CRect
olabilirRECT
.
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ı CRect
şişirmek için birim sayısını içeren bir RECT
yapıyı veya CRect
nesneyi gösterir.
Açıklamalar
parametresinin x
ve y
(veya cx
ve cy
) değerleri öğesine CRect
eklenir.
Üçü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 CRect
iş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 rect
kesişimine CRect
eşit ayarlarCRect
.
void operator&=(const RECT& rect) throw();
Parametreler
rect
RECT
veya CRect
iç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::IntersectRect
bakın.
CRect::operator |=
ve rect
birleşimine CRect
eşit ayarlarCRect
.
void operator|=(const RECT& rect) throw();
Parametreler
rect
CRect
veya RECT
iç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 CRect
eklenir.
Üçü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 SubtractRect
gibi DeflateRect
ç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 rect2'ninCRect
kesişimi olan bir CRect
döndürür.
CRect operator&(const RECT& rect2) const throw();
Parametreler
rect2
RECT
veya CRect
içerir.
Dönüş Değeri
CRect
ve rect2
'nin CRect
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 rect2
birleşimi olan CRect
bir CRect
döndürür.
CRect operator|(const RECT&
rect2) const throw();
Parametreler
rect2
RECT
veya CRect
içerir.
Dönüş Değeri
CRect
ve rect2
'nin CRect
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 CRect
olup 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 CRect
sı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 CRect
içerir.
CSize Size() const throw();
Dönüş Değeri
CSize
boyutunu CRect
iç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 lpRectSrc1
çıkarma değerine lpRectSrc2
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ı lpRectSrc1
veya CRect
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 lpRectScr2
kesişiminde olmayan tüm noktaları lpRectScr1
içeren en küçük dikdörtgendirlpRectScr1
.
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 lpRectSrc2
(50,50, 150,150) iselpRectSrc1
, işlevi döndürdüğnde tarafından lpRectSrc1
işaret edilen dikdörtgen değiştirilmez. Eğer (10,10, 100,100) ve lpRectSrc2
(50,10, 150,150) iselpRectSrc1
, ancak tarafından lpRectSrc1
işaret edilen dikdörtgen işlevin döndüreceği koordinatları (10,10, 50,100) içerir.
SubtractRect
işleç - veya işleci -=ile aynı değildir. Bu işleçlerden hiçbiri çağrı SubtractRect
yapmaz.
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 CRect
bir CPoint
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::CenterPoint
bakı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 RECT
CRect
öğesini gösterir.
lpRect2
Kaynak dikdörtgen içeren veya RECT
CRect
öğ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);