CRect

CRect类与Windows RECT结构相似,并且还包括操作CRect对象和Windows RECT结构的成员函数。
在传递LPRECT,LPCRECT或RECT结构作为参数的任何地方,都可以传递CRect对象来代替。
注意:这个类是从tagRECT结构派生而来的。(tagRECT是RECT结构的不太常用的别名。)这意味着RECT结构的数据成员(left,top,right,和bottom)也是CRect的可访问数据成员。
一个CRect包含用于定义矩形的左上角和右下角点的成员变量。
当指定一个CRect时,必须谨慎地构造它,以使它符合规范——也就是说,使其左坐标值小于右坐标值,使顶坐标值小于底坐标值。例如,左上角为(10,10),右下角为(20,20)就定义了一个符合规范的矩形,但是左上角为(20,20)而右下角为(10,10)的值就定义了一个不符合规范的矩形。如果矩形是不符合规范的,则CRect的许多成员函数都会符合不正确的结果。(参见CRect::NormalizeRect可以得到这些函数的列表。)在你调用一个要求符合规范的矩形的函数之前,你可以通过调用NormalizeRect函数来使不符合规范的矩形成为符合规范的矩形。
当用成员函数CDC::DPtoLP和CDC::LPtoDP来处理CRect时要小心。如果显示环境的映射模式y-extent是负的,就像在MM_LOENGLISH中一样,则CDC::DPtoLP将转换CRect,以使它的顶部坐标大于底部坐标。然后像Height和Size这样的函数将返回负值作为转换后的矩形的高度,则此矩形将是不符合规范的。
当使用重载的CRect操作符时,第一个操作数必须是一个CRect;第二个操作数可以是一个RECT结构或一个CRect对象。
#include <afxwin.h>

请参阅:CPoint, CSize, RECT


CRect类成员

构造
CRect构造一个CRect对象

运算
Width计算CRect的宽度
Height计算CRect的高度
Size计算CRect的大小
TopLeft返回CRect的左上角点
BottomRight返回CRect的右下角点
CenterPoint返回CRect的中心点
IsRectEmpty确定CRect是否是空的。如果CRect的宽度和/或高度为0,则它是空的
IsRectNull确定CRect的top,bottom,left,和right是否都等于0
PtInRect确定指定的点是否在CRect之内
SetRect设置CRect的尺寸
SetRectEmpty设置CRect为一个空的矩形(所有的坐标都等于0)
CopyRect将一个源矩形的尺寸拷贝到CRect
EqualRect确定CRect是否等于给定的矩形
InflateRect增加CRect的宽度和高度
DeflateRect减少CRect的宽度和高度
NormalizeRect使CRect的高度和宽度返回规范
OffsetRect将CRect移动到指定的偏移
SubtractRect从一个矩形中减去另一个矩形
IntersectRect设置CRect等于两个矩形的交集
UnionRect设置CRect等于两个矩形的并集

运算符
operator LPCRECT将一个CRect转换为一个LPCRECT
operator LPRECT将一个CRect转换为一个LPRECT
operator =将一个矩形的尺寸拷贝到CRect
operator ==确定CRect是否与一个矩形相等
operator !=确定CRect是否不等于另一个矩形
operator +=使CRect增加指定的偏移,或使CRect放大
operator -=从CRect中减去指定的偏移,或缩小CRect
operator &=设置CRect等于CRect和某个矩形的交
operator |=设置CRect等于CRect和某个矩形的并
operator +增加给定偏移量到CRect,并返回得到的CRect对象
operator -从CRect中减去给定偏移量,并返回得到的CRect对象
operator &创建CRect与某个矩形的交,并返回得到的CRect对象
operator |创建CRect与某个矩形的并,并返回得到的CRect对象