InflateRect是一种函数,InflateRect函数增大或减小指定矩形的宽和高。InflateRect函数在矩形的左和右增加dx,在矩形的上下增加dy。 dx和dy参数是有符号值。正数增加宽和高,负数减小。
InflateRect通过将CRect的边向远离其中心的方向移动来扩大它。为了做到这一点,InflateRect从矩形的左边和上边减去单位数,将单位数增加到右边和下边。InflateRect的参数是有符号的值;正值扩大CRect,而负值则缩小它。
目录 | 2MFC |
---|
API
InflateRect
BOOL InflateRect(
LPRECT lprc, //矩形
int dx, // amount to adjust width
int dy // amount to adjust height
);
void CRect::InflateRect(int x,int y);
void CRect::InflateRect(SIZE size);
void CRect::InflateRect(LPCRECT lpRect);
void CRect::InflateRect(int l,int t,int r,int b);
参数
x | 指定扩大CRect左和右边的单位数。 |
y | 指定扩大CRect上、下边的单位数。 |
size | 一个指定扩大CRect的单位数的SIZE或CSize。cx值指定扩大左、右边的单位数,cy指定扩大上、下边的单位数。 |
lpRect | 指向一个RECT结构或CRect,指定扩大每一边的单位数。 |
l | 指定扩大CRect左边的单位数。 |
t | 指定扩大CRect上边的单位数。 |
r | 指定扩大CRect右边的单位数。 |
b | 指定扩大CRect下边的单位数。 |
说明
前两个重载函数使CRect相对的两对边都扩大,因此CRect的总宽度增加了了两倍x(或cx),总高度增加了两倍y(或cy)。其它两个重载函数使CRect的边则是相对独立的扩大。
例子1:
void CRect::InflateRect(int l, int t, int r, int b)
{
left -= l;
top -= t;
right += r;
bottom += b;
}
使用实例(VS2005 + WinCE6.3)
CRect rt =CRect(100,100,150,160);
printf("rt: %d %d %d %d \n",rt.left,rt.top,rt.right,rt.bottom);//rt: 100 100 150 160
rt.InflateRect(20,30); //int x,int y形式
printf("rt: %d %d %d %d \n",rt.left,rt.top,rt.right,rt.bottom);//rt: 80 70 170 190
rt.InflateRect(1,5,10,15);// l,t,r,b形式
printf("rt: %d %d %d %d \n",rt.left,rt.top,rt.right,rt.bottom);//rt: 79 65 180 205
SIZE sz = {5,5};
rt.InflateRect(sz);//size形式
printf("rt: %d %d %d %d \n",rt.left,rt.top,rt.right,rt.bottom);//rt: 74 60 185 210
联系客服