标题:看VC++技术内幕有一句话不明白,望高手解答!
只看楼主
asd6791868
Rank: 1
来 自:逆流
等 级:新手上路
帖 子:362
专家分:7
注 册:2008-7-27
结帖率:88.24%
已结贴  问题点数:20 回复次数:5 
看VC++技术内幕有一句话不明白,望高手解答!
CRect left,top,right,bottom
CPoint x,y
CSize cs,cy  

从CPoint对象减去另一个CPoint对象,得到一个CSize对象。

CRect类有涉及CSize和CPoint类的成员函数。例如,TopLeft成员函数返回一个CPoint对象,Size成员函数返回一个CSize对象。从这一点我们可以看出,一个CSize对象是两个CPiont对象的差,而却我imenkeyiyongyigeCPoint对象进行偏移得到CRect对象。
搜索更多相关主题的帖子: 内幕 技术 解答 
2009-08-08 11:09
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
得分:20 
操作符重载决定,我查了查msdn,cpoint操作符重载-号有以下操作符重载,可以看出
CSize operator -( POINT point ) const; cpoint-cpoint得到一个CSize对象
 
CPoint operator -( SIZE size ) const; cpoint-csize得到一个Cpoint对象

 
CRect operator -( const RECT* lpRect ) const; 得到一个Cpoint对象CRect对象
 
CPoint operator -( ) const; 取负数
 
2009-08-08 11:24
asd6791868
Rank: 1
来 自:逆流
等 级:新手上路
帖 子:362
专家分:7
注 册:2008-7-27
得分:0 
从CPoint对象减去另一个CPoint对象,得到一个CSize对象。
这句话不明白为什么得到的是一个CSize对象

─條路 :  ┈片天  ┈個人  ─瞬間:
2009-08-08 11:27
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
得分:0 
在CPOINT中有这样一句CSize operator-(POINT point) const;操作符重载,
看afxwin.h,
class CPoint{
    .....
CSize operator-(POINT point) const;
    .....
}
   

当处理CPOINT对象-CPOINT对象时,就调用operator-函数,返回CSize对象。
2009-08-08 11:40
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
得分:0 
定义文件在AFXWIN1.INL中
_AFXWIN_INLINE CSize CPoint::operator-(POINT point) const
    { return CSize(x - point.x, y - point.y); }

没错,返回的就是CSIZE对象。
2009-08-08 11:59
asd6791868
Rank: 1
来 自:逆流
等 级:新手上路
帖 子:362
专家分:7
注 册:2008-7-27
得分:0 
哦 我明白了

─條路 :  ┈片天  ┈個人  ─瞬間:
2009-08-08 12:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-282011-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089615 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved