C++类求助

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:32:29
设计并测试一个矩形类(Rectangle),属性为矩形的左下角与右上角的坐标,矩形水平放置。操作为计算矩形的周长与面积。测试包括用成员函数和普通函数。

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 计算CRec