VC中CRect类的简单介绍
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 计算CRect的大小
TopLeft 返回CRect的左上角点
BottomRight 返回CRect的右下角点
CenterPoint 返回CRect的中心点
IsRectEmpty 确定CRect是否是空的。如果CRect的宽度和/或高度为0,则它是空的
IsRectNull 确定CRect的top,bottom,left,和right是否都等于0
PtInRect 确定指定的点是否在CRect之内
SetRect 设置CRect的尺寸
SetRectEmpty 设置CRect为一个空的矩形(所有的坐标都等于0)
CopyRect 将一个源矩形的尺寸拷贝到CRect
EqualRect 确定CRect是否等于给定的矩形
InflateRect 增加CRect的宽度和高度
DeflateRect 减少CRect的宽度和高度
NormalizeRect 使CRect的高度和宽度返回规范
OffsetRect 将CRect移动到指定的偏移
SubtractRect 从一个矩形中减去另一个矩形
IntersectRect 设置CRect等于两个矩形的交集
UnionRect 设置CRect等于两个矩形的并集
运算符 operator LPCRECT 将一个CRect转换为一个LPCRECT
operator LPRECT 将一个CRect转换为一个LPRECT
operator = 将一个矩形的尺寸拷贝到CRect
operator == 确定CRect是否与一个矩形相等
operator != 确定CRect是否不等于另一个矩形
operator += 使CRect增加指定的偏移,或使CRect放大
operator -= 从CRect中减去指定的偏移,或缩小CRect
operator &= 设置CRect等于CRect和某个矩形的交
operator |= 设置CRect等于CRect和某个矩形的并
operator + 增加给定偏移量到CRect,并返回得到的CRect对象
operator - 从CRect中减去给定偏移量,并返回得到的CRect对象
operator & 创建CRect与某个矩形的交,并返回得到的CRect对象
operator | 创建CRect与某个矩形的并,并返回得到的CR
VC中CRect类的简单介绍的更多相关文章
- Duilib中各个类的简单介绍
DirectUI意为直接在父窗口上绘图(Paint on parent dc directly).即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上.微软的“D ...
- c++string类的简单介绍
#include "iostream" #include "string" using namespace std; /*@author:浅滩 *family: ...
- java中Color类的简单总结
java中Color类的简单总结 1.颜色的常识 任何颜色都是由三原色组成(RGB),JAVA中支持224为彩色,即红绿蓝分量取值 介于0-255之间(8位表示) 2.Color类中的常量 publi ...
- VC++中的类的内存分布(上)
0.序 目前正在学习C++中,对于C++的类及其类的实现原理也挺感兴趣.于是打算通过观察类在内存中的分布更好地理解类的实现.因为其实类的分布是由编译器决定的,而本次试验使用的编译器为VS2015 RC ...
- VC++中的类的内存分布(上)(通过强制转换,观察地址,以及地址里的值来判断)
0.序 目前正在学习C++中,对于C++的类及其类的实现原理也挺感兴趣.于是打算通过观察类在内存中的分布更好地理解类的实现.因为其实类的分布是由编译器决定的,而本次试验使用的编译器为VS2015 RC ...
- 浏览器中 F12 功能的简单介绍
chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首 ...
- [转]chrome浏览器中 F12 功能的简单介绍
本文转自:https://www.cnblogs.com/zhuzhubaoya/p/9758648.html chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己 ...
- 【F12】chrome浏览器中 F12 功能的简单介绍
chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首 ...
- chrome浏览器中 F12 功能的简单介绍
chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首 ...
随机推荐
- 【转】Android开发笔记——圆角和边框们
原文地址:http://blog.xianqu.org/2012/04/android-borders-and-radius-corners/ Android开发笔记——圆角和边框们 在做Androi ...
- 关于@Autowired使用注意点
@Autowired是按类型进行装配的,那么我一个接口UserInterface,有多个实现类AImpl(@service(name="userInterface1")),BImp ...
- Python,OpenGL生命游戏
初学Python和OpenGL,练手的第一个小程序life.py,这个小程序在日后会不断调整,增加类.优化判断及操作 执行效果: 按正规生命游戏的规则: 1.周围生命等于3时产生生命 2.周围生命等于 ...
- centos7.3安装python3.6.5
最近在玩django,想部署个网站试试,结果发现线上默认的centos用得居然是python2.7.5,那么先升级下吧,到python3.6.5 yum安装时python2.7.5 那么编译安装吧 那 ...
- 好记性不如烂笔头-Mysql查找如何判断字段是否包含某个字符串
好记性不如烂笔头-Mysql查找如何判断字段是否包含某个字符串 利用mysql 字符串函数 find_in_set(); SELECT * FROM users WHERE find_in_set(' ...
- 关于java中word转html
http://www.dewen.org/q/5820/java%E4%B8%AD%E6%80%8E%E4%B9%88%E5%B0%86word%E6%96%87%E6%A1%A3%E8%BD%ACh ...
- stm32库函数FSMC_NORSRAMInit()解析
这是一段对nor存储器的时序进行编程的函数,函数形式为void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct),里面 ...
- css伪类(Pseudo-classes)
简介:伪类(Pseudo classes)是选择符的螺栓,用来指定一个或者与其相关的选择符的状态.它们的形式是selector:pseudo class { property: value; },简单 ...
- DBCA Does Not Display ASM Disk Groups In 11.2
DBCA Does Not Display ASM Disk Groups In 11.2 https://oraclehowto.wordpress.com/2011/08/15/dbca-does ...
- [转] C#调用外部DLL
原文地址 每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用DLL的方法进行介绍.首先,您需要了解什么是托管,什么是非托管.一般可以认为:非托管代码主要是基于win 32平台开发的DLL,ac ...