InflateRect是一種函式,InflateRect函式增大或減小指定矩形的寬和高。InflateRect函式在矩形的左和右增加dx,在矩形的上下增加dy。 dx和dy參數是有符號值。正數增加寬和高,負數減小。
InflateRect通過將CRect的邊向遠離其中心的方向移動來擴大它。為了做到這一點,InflateRect從矩形的左邊和上邊減去單位數,將單位數增加到右邊和下邊。InflateRect的參數是有符號的值;正值擴大CRect,而負值則縮小它。
基本介紹
- 外文名:InflateRect
- 類型:函式
InflateRect,MFC,
InflateRect
API
InflateRect
BOOL InflateRect(
LPRECT lprc, //矩形
int dx, // amount to adjust width
int dy // amount to adjust height
);
MFC
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