现在的位置: 首页 > 综合 > 正文

还是CRect 应注意的问题

2012年10月14日 ⁄ 综合 ⁄ 共 648字 ⁄ 字号 评论关闭
CRect类与Windows RECT结构相似,并且还包括操作CRect对象和Windows
RECT结构的成员函数。
在传递LPRECT,LPCRECT或RECT结构作为参数的任何地方,都可以传递
CRect对象来代替。
个CRect包含月于定义矩形的左上角和右下角点的成员变量。
当指定一个CRect时,必须谨慎地构造它,以使它符合规范一也就是说,使
其左坐标值小于右坐标值,使顶坐标值小于底坐标值。例如,左上角为(la,
10),右下角为(20, 20)就定义了一个符合规范的矩形,但是左上角为(20,
20)而右下角为(1D, 10)的值就定义了一个不符合规范的矩形。如果矩形是
不符合规范的,则CRect的许多成员函数都会符合不正确的结果。(参见
CRect::NormalizeRect可以得到这些函数的列表。)在你调用一个要求符合规范
的矩形的函数之前,你可以通过调用NormalizeRect函数来使不符合规范的矩
形成为符合规范的矩形。
当用成员函数CDC::DPtoLP和CDC::LPtoDP来处理CRect时要小心。如果显
示环境的映射模式Y-tent是负的,就像在MM LOENGLISH中一样,则
CDC::DPtoLP将转换CRect,以使它的顶部坐标大于底部坐标。然后像Height
和Size这样的函数将返回负值作为转换后的矩形的高度,则此矩形将是不符合
规范的。
当使用重载的CRect操作符时,第一个操作数必须是一个CRect;第二个操作
数可以是一个RECT结构或一个CRect对象。
参考资料:MSDN

抱歉!评论已关闭.