更新时间:2015-12-29 10:25:56浏览次数:1+次
RECT rect;
rect.left=0;
rect.top=0;
rect.right=0;
rect.bottom=0;
然而Windows中已经有写好的一个置空函数:SetRectEmpty(LPRECT lpRect);//传入一个RECT结构体变量,函数将执行上面一段代码一样的效果
虽然这个函数没有什么好讲的,不过列出来,纯粹是让你知道有这么一个函数的存在,可以简化你的代码。当然,我还是多余说一下,什么是空矩形。一个点是不是空矩形?当然不是!一个点虽然只占据一个点的位置,但无论如何他也是有“窝”的。空矩形则是一无所有!RECT rect;
rect.left=0;
rect.top=0;
rect.right=1;
rect.bottom=1;
这样就得到矩形是坐标(0,0)上的点。此矩形宽度和高度的计算:rect.right-rect.left=1-0=1,rect.bottom-rect.top=1-0=1,即1x1大小的矩形。如下图所示:
RECT rect1,rect2;
rect1.left=10;
rect1.top=10;
rect1.right=10;
rect1.bottom=10;
rect2.left=10;
rect2.top=20;
rect2.right=10;
rect2.bottom=20;
这样得到的rect1和rect2都是空矩形!切忌不要浮于表面。即使是这么简单的问题,你也可能看不懂哦。相信这么解释之后,你才知道空矩形原来也可以这样!其实是大家都没有透过现象看本质而已。bool IsRectEmpty(LPRECT lpRect)//如果矩形为空,返回true(非零),否则返回false(零)
所以这样检测就可以了:if (IsRectEmpty(&rect1))
{
MessageBox(hwnd,_T("空矩形"),_T("空矩形"),0);
}
if (IsRectEmpty(&rect2))
{
MessageBox(hwnd,_T("空矩形"),_T("空矩形"),0);
}
然而如果我们想快速设置一个矩形为空,一般都默认设置为全零即可。内存可以初始化为全零。当然还有一个不错的函数,SetRectEmpty(LPRECT lpRect),这样一个函数搞定四个成员的赋值。也是简化代码的行为,没有什么特别的。相关资讯