`
mizoushenjing
  • 浏览: 54908 次
  • 性别: Icon_minigender_1
  • 来自: 聊城
社区版块
存档分类
最新评论

CPoint,CSize,CRect类说明收藏

阅读更多
CPoint类
类CPoint是对Windows结构POINT的封装,凡是能用POINT结构的地方都可以用CPoint代替。
结构POINT表示屏幕上的一个二维点,其定义为:
typedef struct tagPOINT{
LONG x;
LONG y;
} POINT;
                 其中 x、y分别是点的横坐标和纵坐标。
                    由于CPoint提供了一些重载运算符,使得CPoint的操作更加方便。如运算符“+”,“-”,“+=”和“-=”用于两个CPoint对象或一个 CPoint对象与一个CSize对象的加减运算,运算符“==”和“!=”用于比较两个CPoint对象是否相等。
CSize类

类CSize是对Windows结构SIZE的封装,凡是能用SIZE结构的地方都可以用CSize代替。
结构SIZE表示一个矩形的长度和宽度,其定义为:
typedef struct tagSIZE{
LONG cx;
LONG cy;
} SIZE;
其中 cx、cy分别是长度和宽度。
与CPoint类似,CSize也提供了一些重载运算符。如运算符“+”,“-”,“+=”和“-=”,用于两个CSize对象或一个CSize对象与一个CPoint对象的加减运算,运算符“==”和“!=”用于比较两个CSize对象是否相等。
由于CPoint和CSize都包含两个整数类型的成员变量,他们可以进行相互操作。CPoint对象的操作可以以CSize对象为参数。同样,CSize 对象的操作也可以以CPoint对象为参数。如可以用一个CPoint对象构造一个CSize对象,也可以用一个CSize对象构造一个CPoint对象,允许一个CPoint对象和一个CSize对象进行加减运算。
CRect类
类CRect是对Windows结构RECT的封装,凡是能用RECT结构的地方都可以用CRect代替。
结构RECT表示一个矩形的位置和尺寸,其定义为:
typedef struct tagRECT{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
其中 left、top分别表示矩形左上角顶点的横坐标和纵坐标,right、bottom分别表示矩形右下角顶点的横坐标和纵坐标。
由于CRect提供了一些成员函数和重载运算符,使得CRect的操作更加方便。
1.CRect的构造函数
CRect有如下6个构造函数:
CRect( );
CRect( int l, int t, int r, int b );
CRect( const RECT& srcRect );
CRect( LPCRECT lpSrcRect );
CRect( POINT point, SIZE size );
CRect( POINT topLeft, POINT bottomRight );
说明:分别以不同的方式构造CRect对象,参数l,t,r,b分别指定矩形的左边、上边、右边和底边。SrcRect是一个RECT结构的引用。 LpSrcRect是一个指向RECT结构的指针。Point指定矩形的左上角顶点的坐标,size指定矩形的长度和宽度。topLeft指定矩形的左上角顶点的坐标,bottomRight指定矩形的右下角顶点的坐标。
2.CRect重载运算符
CRect重载的运算符包括:赋值运算符、比较运算符、算术运算符、交并运算符等。
赋值运算符“=”实现CRect对象间的拷贝。
比较运算符“==”和“!=”比较两个CRect对象是否相等(四个成员都相等时,两个对象才相等)。
算术运算符包括“+=”、“-=”、“+”、“-”,他们的第一个操作数是CRect对象,第二个操作数可以是POINT、SIZE或RECT。当第二个操作数是POINT或SIZE时,“+”和“+=”的运算结果使CRect矩形向x轴和y轴的正方向移动POINT或SIZE指定的大小。“-”和“-=” 的运算结果则使CRect矩形向x轴和y轴的负方向移动POINT或SIZE指定的大小。当第二个操作数是RECT时,“+”和“+=”的运算结果使 CRect矩形的左上角顶点向左上方向移动RECT前两个成员指定的大小,而CRect矩形的右下角顶点向右下方向移动RECT后两个成员指定的大小。 “-”和“-=”的运算结果则使CRect矩形的左上角顶点向右下方向移动RECT前两个成员指定的大小,而CRect矩形的右下角顶点向左上方向移动 RECT后两个成员指定的大小。
运算符“&”和“&=”得到两个矩形的交集(两个矩形的公共部分),运算符“|”和“|=”得到两个矩形并集(包含两个矩形的最小矩形)。
3.Crect其他常用成员函数
(1)Width( ) :得到矩形的宽度;
(2)Height( ):得到矩形的高度;
(3)Size( ):得到矩形的大小(高度和宽度);
(4)TopLeft( ):得到矩形左上角顶点坐标;
(5)BottomRight( ) :得到矩形右下角顶点坐标;
(6)PtInRect( ):判断一个点是否在矩形内,如是返回真,否则返回假。原形如下:
BOOL PtInRect( POINT point ) const;
(7)IsRectEmpty( ):判断矩形是否为空(高度和宽度都是0);
(8)IsRectNull( ):判断矩形是否为0(左上角和右下角坐标都是0);
(9)SetRect( ):设置矩形四个成员变量的值。
4.CRect的规格化
一个规格化的矩形是指他的高度和宽度都是正值,即矩形的右边大于矩形的左边,矩形的底边大于矩形的上边。矩形的规格化函数是 NormalizeRect(),该函数比较矩形的的left和right及top和bottom,如果不满足规格化要求,则对换两个值。上面介绍的大部分运算符和成员函数,只有规格化的矩形才能得到正确结果
分享到:
评论

相关推荐

    常用MFC和API函数.pdf

    包括CArchive类、CBitmap类、CBrush类、CButton类、CByteArray类、CCmdUI类、CColorDialog类、...CPoint类、CRect类、CRgn类、CSize类、CSpinButtonCtrl类、CStatusBar类、CString类、CStringList类、CWinApp类和CWnd类...

    MFC关于绘图教程

    而`CPoint`是MFC封装的一个类,它继承了`POINT`的特性,并提供了更多的功能,例如偏移、设置坐标值等。 **CPoint类的构造函数**: - 默认构造函数`CPoint()`; - 接收整型参数的构造函数`CPoint(int initX, int ...

    c++ cdc库函数

    本文将围绕以下几点展开:MFC框架中的CDC类介绍、绘图上下文(Device Context, DC)的基本操作、常用结构体如POINT、SIZE、RECT及其对应的MFC封装类CPoint、CSize、CRect的使用方法,并结合具体的绘图场景进行说明。...

    MFC通用类ppt,详细的介绍mfc通用类的使用

    `CRect`类则用于表示矩形,同样有两种构造函数,可以使用四个整数参数或一个`RECT`结构来初始化矩形的左上角和右下角坐标。`CSize`类用来表示矩形区域的宽度和高度,它的构造函数接受两个整数参数或一个`SIZE`结构。...

    详细介绍GDI编程--绘图

    此外,还有CRect类用于处理矩形,以及CSize类用于处理大小。 在实际绘图过程中,开发者会使用GDI提供的函数,如MoveTo、LineTo、Rectangle等,结合CPoint、CRect等类,创建出各种复杂的图形效果。例如,可以通过...

    可视化编程PPT学习教案.pptx

    除了基本的绘图操作,MFC还提供了CPoint、CSize和CRect类来处理几何位置和尺寸。CPoint用于表示二维坐标,CRect用于定义矩形区域,而CSize则表示矩形的宽度和高度。这些类使得处理图形对象变得更为方便。 此外,MFC...

    MFC中常用类MFC中常用类

    本文介绍了MFC中常用的几个类及其使用方法,包括`CRect`类、`CString`类以及其他辅助类和函数,并简要概述了Windows消息处理的基本原理。这些知识是MFC编程的基础,掌握它们可以帮助开发者更高效地开发出高质量的...

    MFC中常用类,宏,函数介绍.

    - 类中包含了一些便捷的成员函数,例如Width()和Height()获取矩形的宽和高,Size()返回CSize对象表示矩形尺寸,TopLeft()和BottomRight()返回矩形的顶点坐标,CenterPoint()获取矩形中心点。 - 矩形支持与点的加法...

    C++常用类和API函数

    #### CPoint类:操作CPoint和POINT结构 - **简介**:`CPoint` 类用于表示二维坐标点。 #### CRect类:封装了一个矩形区域及相关操作 - **简介**:`CRect` 类用于表示和操作矩形区域。 #### CRgn类:封装用于操作...

    MFC类库列举 MFC类库列举 MFC类库列举 MFC类库列举

    - `CPoint`和`CSize`类:分别表示点和大小对象,用于坐标和尺寸计算。 - `CRect`类:表示矩形区域。 - `CRgn`类:表示区域对象,用于复杂形状的绘制。 - `CRectTracker`类:用于跟踪和调整矩形区域。 #### 字符串和...

    使用新的MFC7 / ATL7共享类。

    首先,CPoint、CRect和CSize是MFC和ATL中常用的几何数据类型,它们代表二维坐标点、矩形和尺寸。在新的MFC7和ATL7中,这些类可能得到了优化,提供了更丰富的功能和更好的性能。例如,可能增加了新的成员函数,使得...

    VC中的坐标转换源代码

    在VC++中,我们可以使用CRect、CPoint、CSize等类来处理坐标。例如,CRect代表一个矩形,它的成员变量左下角和右上角的坐标可以用来表示坐标范围;CPoint和CSize分别表示点坐标和大小(宽度和高度),它们都支持加减...

    【计算机图形学课程】01.MFC基本绘图函数使用方法1

    2. CPoint类:这个类用于存储二维坐标系统中的点坐标,包括x和y两个值。 3. CRect类:CRect类用于表示矩形,它包含了矩形四个顶点的坐标:top、left、right和bottom。通过这些坐标,我们可以方便地进行矩形的创建、...

    图形学资料

    同时,MFC的CPoint、CRect和CSize等几何对象类将帮助你处理图形的坐标和尺寸。通过这些,你可以实现点击事件触发的图形响应,或者拖动操作改变图形的位置和大小。 最后,“软件学院计算机图形学实验课题目.pdf”...

    mfc文档——介绍mfc

    - **定义**:`CRect` 类用于表示矩形,主要成员变量包括 `left`、`top`、`bottom` 和 `right`,分别代表矩形左上角和右下角的坐标。 - **构造方法**: - `CRect(int l,int t,int r,int b);` 指明四个坐标。 - `...

    部分MFC和API函数

    21. **CPoint类**和**CRect类**:分别用于处理点和矩形的坐标操作。 22. **CRgn类**:处理GDI中的区域,如椭圆、多边形等。 23. **CSize类**:表示二维尺寸,可用于计算位置或尺寸的变化。 24. **CSpinButtonCtrl...

    计算机图形学(MFC)- 二维基本几何变换算法

    在MFC环境中,我们可以利用CPoint、CRect和CSize等类来处理图形的坐标和尺寸。同时,使用CDC类提供的DrawText、MoveTo、LineTo等方法来绘制和操作图形。在进行几何变换时,可能需要先将原始坐标转换到设备坐标,然后...

    vc++推荐看的例子

    CPoint, CRect, CSize - 几何数据类型 - **定义**: - `CPoint`: 表示二维坐标点。 - `CRect`: 表示矩形区域。 - `CSize`: 表示大小尺寸。 - **用途**: - 定义和操作几何形状。 - 用于绘图和布局操作。 #### ...

    摄影测量学图像内定向程序

    //定义CPoint类实体,并初始化为设备坐标 dc.DPtoLP(&local); //将设备坐标转为逻辑坐标 //将该段程序放入OnLButtonDown(UINT nFlags, CPoint point) //和OnMouseMove(UINT nFlags, CPoint point)中 //////////...

Global site tag (gtag.js) - Google Analytics