还是CRect 应注意的问题

本文介绍了CRect类,该类与Windows RECT结构相似,可用于定义矩形。文章详细解释了如何构造符合规范的CRect对象,以及如何使用成员函数如NormalizeRect确保矩形的有效性。此外还提到了在特定情况下处理CRect时需要注意的问题。
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值