Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mirip dengan struktur Windows RECT .
Sintaks
class CRect : public tagRECT
Anggota
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
CRect::CRect |
Membuat CRect objek. |
Metode Publik
| Nama | Deskripsi |
|---|---|
CRect::BottomRight |
Mengembalikan titik kanan bawah .CRect |
CRect::CenterPoint |
Mengembalikan titik tengah .CRect |
CRect::CopyRect |
Menyalin dimensi persegi panjang sumber ke CRect. |
CRect::DeflateRect |
Mengurangi lebar dan tinggi CRect. |
CRect::EqualRect |
Menentukan apakah CRect sama dengan persegi panjang yang diberikan. |
CRect::Height |
Menghitung tinggi CRect. |
CRect::InflateRect |
Meningkatkan lebar dan tinggi CRect. |
CRect::IntersectRect |
CRect Set sama dengan persimpangan dua persegi panjang. |
CRect::IsRectEmpty |
Menentukan apakah CRect kosong.
CRect kosong jika lebar dan/atau tinggi adalah 0. |
CRect::IsRectNull |
Menentukan apakah topvariabel anggota , bottom, left, dan right semuanya sama dengan 0. |
CRect::MoveToX |
CRect Berpindah ke koordinat x yang ditentukan. |
CRect::MoveToXY |
CRect Berpindah ke koordinat x- dan y yang ditentukan. |
CRect::MoveToY |
CRect Berpindah ke koordinat y yang ditentukan. |
CRect::NormalizeRect |
Menstandarkan tinggi dan lebar CRect. |
CRect::OffsetRect |
CRect Berpindah menurut offset yang ditentukan. |
CRect::PtInRect |
Menentukan apakah titik yang ditentukan terletak di dalam CRect. |
CRect::SetRect |
Mengatur dimensi CRect. |
CRect::SetRectEmpty |
CRect Mengatur ke persegi kosong (semua koordinat sama dengan 0). |
CRect::Size |
Menghitung ukuran CRect. |
CRect::SubtractRect |
Mengurangi satu persegi panjang dari yang lain. |
CRect::TopLeft |
Mengembalikan titik CRectkiri atas . |
CRect::UnionRect |
CRect Mengatur sama dengan union dua persegi panjang. |
CRect::Width |
Menghitung lebar CRect. |
Operator Publik
| Nama | Deskripsi |
|---|---|
CRect::operator - |
Mengurangi offset yang diberikan dari CRect atau mengempis CRect dan mengembalikan hasil CRect. |
CRect::operator LPCRECT |
Mengonversi ke CRectLPCRECT. |
CRect::operator LPRECT |
Mengonversi ke CRectLPRECT. |
CRect::operator != |
Menentukan apakah CRect tidak sama dengan persegi panjang. |
CRect::operator & |
Membuat persimpangan CRect dan persegi panjang dan mengembalikan hasil CRect. |
CRect::operator &= |
CRect Mengatur sama dengan persimpangan CRect dan persegi panjang. |
CRect::operator | |
Membuat persatuan CRect dan persegi panjang dan mengembalikan yang dihasilkan CRect. |
CRect::operator |= |
CRect Set sama dengan union dan CRect persegi panjang. |
CRect::operator + |
Menambahkan offset yang diberikan ke CRect atau mengembang CRect dan mengembalikan hasil CRect. |
CRect::operator += |
Menambahkan offset yang ditentukan ke CRect atau mengembang CRect. |
CRect::operator = |
Menyalin dimensi persegi panjang ke CRect. |
CRect::operator -= |
Mengurangi offset yang ditentukan dari CRect atau mengempis CRect. |
CRect::operator == |
Menentukan apakah CRect sama dengan persegi panjang. |
Keterangan
CRect juga mencakup fungsi anggota untuk memanipulasi CRect objek dan struktur Windows RECT .
Objek CRect dapat diteruskan sebagai parameter fungsi di mana pun RECT struktur, LPCRECT, atau LPRECT dapat diteruskan.
Catatan
Kelas ini berasal dari tagRECT struktur. (Nama tagRECT adalah nama yang kurang umum digunakan untuk RECT struktur.) Ini berarti bahwa anggota data (, , , dan left) dari top struktur adalah anggota data yang dapat diakses dari right. bottomRECTCRect
CRect berisi variabel anggota yang menentukan titik kiri atas dan kanan bawah persegi panjang.
Saat menentukan CRect, Anda harus berhati-hati untuk membangunnya sehingga dinormalisasi — dengan kata lain, sehingga nilai koordinat kiri kurang dari kanan dan bagian atas kurang dari bagian bawah. Misalnya, kiri atas (10.10) dan kanan bawah (20.20) mendefinisikan persegi panjang yang dinormalisasi tetapi kiri atas (20.20) dan kanan bawah (10.10) menentukan persegi panjang yang tidak dinormalisasi. Jika persegi panjang tidak dinormalisasi, banyak CRect fungsi anggota dapat mengembalikan hasil yang salah. (Lihat CRect::NormalizeRect untuk daftar fungsi-fungsi ini.) Sebelum Anda memanggil fungsi yang memerlukan persegi panjang yang dinormalisasi, Anda dapat menormalkan persegi panjang yang tidak dinormalisasi dengan memanggil NormalizeRect fungsi .
Berhati-hatilah saat memanipulasi CRect dengan CDC::DPtoLP fungsi anggota dan CDC::LPtoDP . Jika mode pemetaan konteks tampilan sedih sehingga tingkat y negatif, seperti dalam MM_LOENGLISH, maka CDC::DPtoLP akan mengubah CRect sehingga bagian atasnya lebih besar dari bagian bawah. Fungsi seperti Height dan Size kemudian akan mengembalikan nilai negatif untuk tinggi yang diubah CRect, dan persegi panjang akan tidak dinormalisasi.
Saat menggunakan operator yang kelebihan CRect beban, operand pertama harus berupa CRect; yang kedua dapat berupa RECT struktur atau CRect objek.
Hierarki Warisan
tagRECT
CRect
Persyaratan
Header :atltypes.h
CRect::BottomRight
Koordinat dikembalikan sebagai referensi ke CPoint objek yang terkandung dalam CRect.
CPoint& BottomRight() throw();
const CPoint& BottomRight() const throw();
Tampilkan Nilai
Koordinat sudut kanan bawah persegi panjang.
Keterangan
Anda dapat menggunakan fungsi ini untuk mendapatkan atau mengatur sudut kanan bawah persegi. Atur sudut dengan menggunakan fungsi ini di sisi kiri operator penugasan.
Contoh
// 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
Menghitung titik CRect tengah dengan menambahkan nilai kiri dan kanan dan membagi dengan dua, dan menambahkan nilai atas dan bawah dan membagi dengan dua.
CPoint CenterPoint() const throw();
Tampilkan Nilai
Objek CPoint yang merupakan titik tengah dari CRect.
Contoh
// 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
Menyalin persegi panjang lpSrcRect ke dalam CRect.
void CopyRect(LPCRECT lpSrcRect) throw();
Parameter
lpSrcRect
Menunjuk ke RECT struktur atau CRect objek yang akan disalin.
Contoh
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
Membuat CRect objek.
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();
Parameter
l
Menentukan posisi kiri .CRect
t
Menentukan bagian CRectatas .
r
Menentukan posisi yang tepat dari CRect.
b
Menentukan bagian bawah CRect.
srcRect
Mengacu pada RECT struktur dengan koordinat untuk CRect.
lpSrcRect
Arahkan ke RECT struktur dengan koordinat untuk CRect.
point
Menentukan titik asal untuk persegi panjang yang akan dibangun. Sesuai dengan sudut kiri atas.
size
Menentukan perpindahan dari sudut kiri atas ke sudut kanan bawah persegi yang akan dibangun.
topLeft
Menentukan posisi CRectkiri atas .
bottomRight
Menentukan posisi CRectkanan bawah .
Keterangan
Jika tidak ada argumen yang diberikan, left, , topright, dan bottom anggota diatur ke 0.
CRectKonstruktor (const RECT&) dan CRect(LPCRECT) melakukan CopyRect. Konstruktor lain menginisialisasi variabel anggota objek secara langsung.
Contoh
// 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 kempes CRect dengan menggerakkan sisi-sisinya ke tengahnya.
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();
Parameter
x
Menentukan jumlah unit untuk mengempis sisi kiri dan kanan CRect.
y
Menentukan jumlah unit untuk mengempiskan bagian atas dan bawah CRect.
size
SIZE Atau CSize yang menentukan jumlah unit yang akan di-deflate CRect. Nilai cx menentukan jumlah unit untuk mengempis sisi kiri dan kanan dan cy nilai menentukan jumlah unit untuk mengempis bagian atas dan bawah.
lpRect
Menunjuk ke RECT struktur atau CRect yang menentukan jumlah unit untuk mengempiskan setiap sisi.
l
Menentukan jumlah unit untuk mengempis sisi kiri CRect.
t
Menentukan jumlah unit untuk mengempiskan bagian CRectatas .
r
Menentukan jumlah unit untuk mengempis sisi kanan CRect.
b
Menentukan jumlah unit untuk mengempis bagian bawah CRect.
Keterangan
Untuk melakukan ini, DeflateRect menambahkan unit ke kiri dan atas dan mengurangi unit dari kanan dan bawah. Parameter adalah DeflateRect nilai yang ditandatangani; nilai positif deflate CRect dan nilai negatif melambungkannya.
Dua kelebihan beban pertama mengempiskan kedua pasangan dari sisi yang berlawanan CRect sehingga lebar totalnya berkurang dua kali x (atau cx) dan tinggi totalnya berkurang dua kali y (atau cy). Dua lainnya kelebihan beban mengempis setiap sisi secara independen dari CRect yang lain.
Contoh
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
Menentukan apakah CRect sama dengan persegi panjang yang diberikan.
BOOL EqualRect(LPCRECT lpRect) const throw();
Parameter
lpRect
Menunjuk ke RECT struktur atau CRect objek yang berisi koordinat sudut kiri atas dan kanan bawah persegi panjang.
Tampilkan Nilai
Bukan nol jika dua persegi panjang memiliki nilai atas, kiri, bawah, dan kanan yang sama; jika tidak, 0.
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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
Menghitung tinggi CRect dengan mengurangi nilai teratas dari nilai bawah.
int Height() const throw();
Tampilkan Nilai
Tinggi CRect.
Keterangan
Nilai yang dihasilkan bisa negatif.
Catatan
Persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
CRect rect(20, 30, 80, 70);
int nHt = rect.Height();
// nHt is now 40
ASSERT(nHt == 40);
CRect::InflateRect
InflateRect mengembang CRect dengan memindahkan sisi-sisinya menjauh dari pusatnya.
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();
Parameter
x
Menentukan jumlah unit untuk mengembang sisi CRectkiri dan kanan .
y
Menentukan jumlah unit untuk mengembang bagian atas dan bawah CRect.
size
SIZE atau CSize yang menentukan jumlah unit yang akan digabungkan CRect. Nilai cx menentukan jumlah unit untuk mengembang sisi kiri dan kanan dan cy nilai menentukan jumlah unit untuk mengembang bagian atas dan bawah.
lpRect
Menunjuk ke RECT struktur atau CRect yang menentukan jumlah unit untuk mengembang setiap sisi.
l
Menentukan jumlah unit untuk mengembang sisi CRectkiri .
t
Menentukan jumlah unit untuk mengembang bagian CRectatas .
r
Menentukan jumlah unit untuk mengembang sisi kanan CRect.
b
Menentukan jumlah unit untuk mengembang bagian bawah CRect.
Keterangan
Untuk melakukan ini, InflateRect kurangi unit dari kiri dan atas dan tambahkan unit ke kanan dan bawah. Parameter adalah InflateRect nilai yang ditandatangani; nilai positif mengembang CRect dan nilai negatif mengempiskannya.
Dua kelebihan beban pertama mengembang kedua pasangan dari sisi yang berlawanan CRect sehingga lebar totalnya ditingkatkan dua kali x (atau cx) dan tinggi totalnya ditingkatkan dua kali y (atau cy). Dua kelebihan beban lainnya mengembang setiap sisi secara independen dari CRect yang lain.
Contoh
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
Membuat sama CRect dengan persimpangan dua persegi panjang yang ada.
BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Parameter
lpRect1
Menunjuk ke RECT struktur atau CRect objek yang berisi persegi panjang sumber.
lpRect2
Menunjuk ke RECT struktur atau CRect objek yang berisi persegi panjang sumber.
Tampilkan Nilai
Bukan nol jika persimpangan tidak kosong; 0 jika persimpangan kosong.
Keterangan
Persimpangan adalah persegi panjang terbesar yang terkandung dalam kedua persegi panjang yang ada.
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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
Menentukan apakah CRect kosong.
BOOL IsRectEmpty() const throw();
Tampilkan Nilai
Bukan nol jika CRect kosong; 0 jika CRect tidak kosong.
Keterangan
Persegi panjang kosong jika lebar dan/atau tinggi adalah 0 atau negatif. Berbeda dari IsRectNull, yang menentukan apakah semua koordinat persegi panjang adalah nol.
Catatan
Persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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
Menentukan apakah nilai CRect atas, kiri, bawah, dan kanan semuanya sama dengan 0.
BOOL IsRectNull() const throw();
Tampilkan Nilai
Bukan nol jika CRectnilai atas, kiri, bawah, dan kanan semuanya sama dengan 0; jika tidak, 0.
Keterangan
Berbeda dari IsRectEmpty, yang menentukan apakah persegi panjang kosong.
Contoh
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
Panggil fungsi ini untuk memindahkan persegi panjang ke koordinat x absolut yang ditentukan oleh x.
void MoveToX(int x) throw();
Parameter
x
Koordinat x absolut untuk sudut kiri atas persegi panjang.
Contoh
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
Panggil fungsi ini untuk memindahkan persegi panjang ke koordinat x- dan y absolut yang ditentukan.
void MoveToXY(int x, int y) throw();
void MoveToXY(POINT point) throw();
Parameter
x
Koordinat x absolut untuk sudut kiri atas persegi panjang.
y
Koordinat y absolut untuk sudut kiri atas persegi panjang.
point
Struktur POINT yang menentukan sudut kiri atas absolut persegi panjang.
Contoh
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
Panggil fungsi ini untuk memindahkan persegi panjang ke koordinat y absolut yang ditentukan oleh y.
void MoveToY(int y) throw();
Parameter
y
Koordinat y absolut untuk sudut kiri atas persegi panjang.
Contoh
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
Menormalkan CRect sehingga tinggi dan lebar positif.
void NormalizeRect() throw();
Keterangan
Persegi dinormalisasi untuk penempatan kuadrian keempat, yang biasanya digunakan Windows untuk koordinat.
NormalizeRect membandingkan nilai atas dan bawah, dan menukarnya jika bagian atas lebih besar dari bagian bawah. Demikian pula, ia menukar nilai kiri dan kanan jika kiri lebih besar dari kanan. Fungsi ini berguna saat berhadapan dengan mode pemetaan yang berbeda dan persegi panjang terbalik.
Catatan
Fungsi anggota berikut CRect memerlukan persegi panjang yang dinormalisasi agar berfungsi dengan baik: Height, , WidthSizeIsRectEmptyPtInRectEqualRectUnionRectIntersectRectSubtractRect, operator ==, , operator !=, operator |, , operator |=, operator &dan .operator &=
Contoh
CRect rect1(110, 100, 250, 310);
CRect rect2(250, 310, 110, 100);
rect1.NormalizeRect();
rect2.NormalizeRect();
ASSERT(rect1 == rect2);
CRect::OffsetRect
CRect Berpindah menurut offset yang ditentukan.
void OffsetRect(int x, int y) throw();
void OffsetRect(POINT point) throw();
void OffsetRect(SIZE size) throw();
Parameter
x
Menentukan jumlah untuk berpindah ke kiri atau kanan. Harus negatif untuk bergerak ke kiri.
y
Menentukan jumlah untuk berpindah ke atas atau ke bawah. Harus negatif untuk bergerak ke atas.
point
POINT Berisi struktur atau CPoint objek yang menentukan kedua dimensi yang akan dipindahkan.
size
SIZE Berisi struktur atau CSize objek yang menentukan kedua dimensi yang akan dipindahkan.
Keterangan
CRect
x Memindahkan unit di sepanjang sumbu x dan y unit di sepanjang sumbu y. Parameter x dan y adalah nilai yang ditandatangani, sehingga CRect dapat dipindahkan ke kiri atau kanan dan atas atau bawah.
Contoh
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
Mengonversi ke CRectLPCRECT.
operator LPCRECT() const throw();
Keterangan
Saat Anda menggunakan fungsi ini, Anda tidak memerlukan operator alamat (&). Operator ini akan secara otomatis digunakan ketika Anda meneruskan CRect objek ke fungsi yang mengharapkan LPCRECT.
CRect::operator LPRECT
Mengonversi ke CRectLPRECT.
operator LPRECT() throw();
Keterangan
Saat Anda menggunakan fungsi ini, Anda tidak memerlukan operator alamat (&). Operator ini akan secara otomatis digunakan ketika Anda meneruskan CRect objek ke fungsi yang mengharapkan LPRECT.
Contoh
Lihat contoh untuk CRect::operator LPCRECT.
CRect::operator =
srcRect Menetapkan ke CRect.
void operator=(const RECT& srcRect) throw();
Parameter
srcRect
Mengacu pada persegi panjang sumber. Bisa berupa RECT atau CRect.
Contoh
CRect rect(0, 0, 127, 168);
CRect rect2;
rect2 = rect;
ASSERT(rect2 == CRect(0, 0, 127, 168));
CRect::operator ==
Menentukan apakah rect sama CRect dengan membandingkan koordinat sudut kiri atas dan kanan bawahnya.
BOOL operator==(const RECT& rect) const throw();
Parameter
rect
Mengacu pada persegi panjang sumber. Bisa berupa RECT atau CRect.
Tampilkan Nilai
Bukan nol jika sama; jika tidak, 0.
Keterangan
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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 !=
Menentukan apakah rect tidak sama CRect dengan membandingkan koordinat sudut kiri atas dan kanan bawahnya.
BOOL operator!=(const RECT& rect) const throw();
Parameter
rect
Mengacu pada persegi panjang sumber. Bisa berupa RECT atau CRect.
Tampilkan Nilai
Bukan nol jika tidak sama; jika tidak, 0.
Keterangan
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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 +=
Dua kelebihan beban pertama dipindahkan CRect oleh offset yang ditentukan.
void operator+=(POINT point) throw();
void operator+=(SIZE size) throw();
void operator+=(LPCRECT lpRect) throw();
Parameter
point
Struktur POINT atau CPoint objek yang menentukan jumlah unit untuk memindahkan persegi panjang.
size
Struktur SIZE atau CSize objek yang menentukan jumlah unit untuk memindahkan persegi panjang.
lpRect
Menunjuk ke RECT struktur atau CRect objek yang berisi jumlah unit untuk mengembang setiap sisi CRect.
Keterangan
Nilai parameter x dan y (atau cx dan cy) ditambahkan ke CRect.
Kelebihan beban ketiga bertambah CRect dengan jumlah unit yang ditentukan di setiap anggota parameter.
Contoh
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect rect2(135, 300, 235, 400);
rect1 += pt;
ASSERT(rect1 == rect2);
CRect::operator -=
Dua kelebihan beban pertama dipindahkan CRect oleh offset yang ditentukan.
void operator-=(POINT point) throw();
void operator-=(SIZE size) throw();
void operator-=(LPCRECT lpRect) throw();
Parameter
point
Struktur POINT atau CPoint objek yang menentukan jumlah unit untuk memindahkan persegi panjang.
size
Struktur SIZE atau CSize objek yang menentukan jumlah unit untuk memindahkan persegi panjang.
lpRect
Menunjuk ke RECT struktur atau CRect objek yang berisi jumlah unit untuk mengempiskan setiap sisi CRect.
Keterangan
Nilai parameter x dan y (atau cx dan cy) dikurangi dari CRect.
Kelebihan beban ketiga dicemarkan CRect dengan jumlah unit yang ditentukan di setiap anggota parameter. Perhatikan bahwa kelebihan beban ini berfungsi seperti DeflateRect.
Contoh
CRect rect1(100, 235, 200, 335);
CPoint pt(35, 65);
rect1 -= pt;
CRect rectResult(65, 170, 165, 270);
ASSERT(rect1 == rectResult);
CRect::operator &=
CRect Set sama dengan persimpangan CRect dan rect.
void operator&=(const RECT& rect) throw();
Parameter
rect
RECT Berisi atau CRect.
Keterangan
Persimpangan adalah persegi panjang terbesar yang terkandung dalam kedua persegi panjang.
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
Lihat contoh untuk CRect::IntersectRect.
CRect::operator |=
CRect Set sama dengan penyatuan CRect dan rect.
void operator|=(const RECT& rect) throw();
Parameter
rect
CRect Berisi atau RECT.
Keterangan
Penyatuan adalah persegi terkecil yang berisi kedua persegi panjang sumber.
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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 +
Dua kelebihan beban pertama mengembalikan CRect objek yang sama dengan CRect dialihkan oleh offset yang ditentukan.
CRect operator+(POINT point) const throw();
CRect operator+(LPCRECT lpRect) const throw();
CRect operator+(SIZE size) const throw();
Parameter
point
Struktur POINT atau CPoint objek yang menentukan jumlah unit untuk memindahkan nilai pengembalian.
size
Struktur SIZE atau CSize objek yang menentukan jumlah unit untuk memindahkan nilai pengembalian.
lpRect
Menunjuk ke RECT struktur atau CRect objek yang berisi jumlah unit untuk mengembang setiap sisi nilai yang dikembalikan.
Tampilkan Nilai
Hasil CRect dari pemindahan atau peningkatan CRect dengan jumlah unit yang ditentukan dalam parameter .
Keterangan
Parameter parameter x dan y (atau cx dan ) cyditambahkan ke CRectposisi 's.
Kelebihan beban ketiga mengembalikan yang baru CRect yang sama dengan CRect yang ditambungkan dengan jumlah unit yang ditentukan dalam setiap anggota parameter.
Contoh
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 -
Dua kelebihan beban pertama mengembalikan CRect objek yang sama dengan CRect dialihkan oleh offset yang ditentukan.
CRect operator-(POINT point) const throw();
CRect operator-(SIZE size) const throw();
CRect operator-(LPCRECT lpRect) const throw();
Parameter
point
Struktur POINT atau CPoint objek yang menentukan jumlah unit untuk memindahkan nilai pengembalian.
size
Struktur SIZE atau CSize objek yang menentukan jumlah unit untuk memindahkan nilai pengembalian.
lpRect
Menunjuk ke RECT struktur atau CRect objek yang berisi jumlah unit untuk mengempiskan setiap sisi nilai yang dikembalikan.
Tampilkan Nilai
Hasil CRect dari pemindahan CRect atau kempisan dengan jumlah unit yang ditentukan dalam parameter.
Keterangan
Parameter parameter x dan y (atau cx dan ) cydikurangi dari CRectposisi 's.
Kelebihan beban ketiga mengembalikan yang baru CRect yang sama dengan CRect yang dicemarkan oleh jumlah unit yang ditentukan dalam setiap anggota parameter. Perhatikan bahwa kelebihan beban ini berfungsi seperti DeflateRect, bukan SubtractRect.
Contoh
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 &
Mengembalikan yang CRect merupakan persimpangan CRect dan rect2.
CRect operator&(const RECT& rect2) const throw();
Parameter
rect2
RECT Berisi atau CRect.
Tampilkan Nilai
Yang CRect merupakan persimpangan dan CRectrect2.
Keterangan
Persimpangan adalah persegi panjang terbesar yang terkandung dalam kedua persegi panjang.
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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 |
Mengembalikan yang merupakan persatuan CRect dan CRectrect2.
CRect operator|(const RECT&
rect2) const throw();
Parameter
rect2
RECT Berisi atau CRect.
Tampilkan Nilai
Yang CRect merupakan persatuan dan CRectrect2.
Keterangan
Penyatuan adalah persegi terkecil yang berisi kedua persegi panjang.
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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
Menentukan apakah titik yang ditentukan terletak di dalam CRect.
BOOL PtInRect(POINT point) const throw();
Parameter
point
POINT Berisi struktur atau CPoint objek.
Tampilkan Nilai
Bukan nol jika titik berada di dalam CRect; jika tidak, 0.
Keterangan
Titik berada di dalam CRect jika terletak di sisi kiri atau atas atau berada di keempat sisi. Titik di sisi kanan atau bawah berada di luar CRect.
Catatan
Persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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
Mengatur dimensi CRect ke koordinat yang ditentukan.
void SetRect(int x1, int y1, int x2, int y2) throw();
Parameter
x1
Menentukan koordinat x dari sudut kiri atas.
y1
Menentukan koordinat y dari sudut kiri atas.
x2
Menentukan koordinat x dari sudut kanan bawah.
y2
Menentukan koordinat y dari sudut kanan bawah.
Contoh
CRect rect;
rect.SetRect(256, 256, 512, 512);
ASSERT(rect == CRect(256, 256, 512, 512));
CRect::SetRectEmpty
Membuat CRect persegi panjang null dengan mengatur semua koordinat ke nol.
void SetRectEmpty() throw();
Contoh
CRect rect;
rect.SetRectEmpty();
// rect is now (0, 0, 0, 0)
ASSERT(rect.IsRectEmpty());
CRect::SIZE
Anggota cx dan cy dari nilai pengembalian berisi tinggi dan lebar CRect.
CSize Size() const throw();
Tampilkan Nilai
Objek CSize yang berisi ukuran CRect.
Keterangan
Tinggi atau lebar bisa negatif.
Catatan
Persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
CRect rect(10, 10, 50, 50);
CSize sz = rect.Size();
ASSERT(sz.cx == 40 && sz.cy == 40);
CRect::SubtractRect
Membuat dimensi CRect sama dengan pengurangan dari lpRectSrc2lpRectSrc1.
BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2) throw();
Parameter
lpRectSrc1
Menunjuk ke RECT struktur atau CRect objek tempat persegi panjang akan dikurangi.
lpRectSrc2
Menunjuk ke RECT struktur atau CRect objek yang akan dikurangi dari persegi panjang yang diarahkan ke lpRectSrc1 parameter .
Tampilkan Nilai
Bukan nol jika fungsi berhasil; jika tidak, 0.
Keterangan
Pengurangan adalah persegi terkecil yang berisi semua titik di lpRectScr1 yang tidak berada di persimpangan lpRectScr1 dan lpRectScr2.
Persegi panjang yang ditentukan oleh lpRectSrc1 akan tidak berubah jika persegi panjang yang ditentukan oleh lpRectSrc2 tidak sepenuhnya tumpang tindih persegi panjang yang ditentukan oleh lpRectSrc1 setidaknya salah satu arah x atau y.
Misalnya, jika lpRectSrc1 (10.10,10, 100.100) dan lpRectSrc2 (50.50, 150.150), persegi panjang yang menunjuk ke lpRectSrc1 tidak akan berubah ketika fungsi dikembalikan. Jika lpRectSrc1 (10.10, 100.100) dan lpRectSrc2 (50.10, 150.150), namun, persegi panjang yang dialirkan lpRectSrc1 akan berisi koordinat (10.10, 50.100) ketika fungsi dikembalikan.
SubtractRect tidak sama dengan operator - atau operator -=. Tidak satu pun dari operator ini pernah memanggil SubtractRect.
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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
Koordinat dikembalikan sebagai referensi ke CPoint objek yang terkandung dalam CRect.
CPoint& TopLeft() throw();
const CPoint& TopLeft() const throw();
Tampilkan Nilai
Koordinat sudut kiri atas persegi panjang.
Keterangan
Anda dapat menggunakan fungsi ini untuk mendapatkan atau mengatur sudut kiri atas persegi panjang. Atur sudut dengan menggunakan fungsi ini di sisi kiri operator penugasan.
Contoh
Lihat contoh untuk CRect::CenterPoint.
CRect::UnionRect
Membuat dimensi CRect sama dengan penyatuan dua persegi panjang sumber.
BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
Parameter
lpRect1
Menunjuk ke RECT atau CRect yang berisi persegi panjang sumber.
lpRect2
Menunjuk ke RECT atau CRect yang berisi persegi panjang sumber.
Tampilkan Nilai
Bukan nol jika serikat tidak kosong; 0 jika serikat kosong.
Keterangan
Penyatuan adalah persegi terkecil yang berisi kedua persegi panjang sumber.
Windows mengabaikan dimensi persegi panjang kosong; yaitu, persegi panjang yang tidak memiliki tinggi atau tidak memiliki lebar.
Catatan
Kedua persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
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
Menghitung lebar CRect dengan mengurangi nilai kiri dari nilai kanan.
int Width() const throw();
Tampilkan Nilai
Lebar CRect.
Keterangan
Lebarnya bisa negatif.
Catatan
Persegi panjang harus dinormalisasi atau fungsi ini mungkin gagal. Anda dapat memanggil NormalizeRect untuk menormalkan persegi sebelum memanggil fungsi ini.
Contoh
CRect rect(20, 30, 80, 70);
int nWid = rect.Width();
// nWid is now 60
ASSERT(nWid == 60);