CDC::RoundRect
更新 : 2007 年 11 月
現在のペンを使って角の丸い四角形を描画します。
BOOL RoundRect(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3
);
BOOL RoundRect(
LPCRECT lpRect,
POINT point
);
パラメータ
x1
四角形の左上隅の x 座標を指定します (論理単位)。y1
四角形の左上隅の y 座標を指定します (論理単位)。x2
四角形の右下隅の x 座標を指定します (論理単位)。y2
四角形の右下隅の y 座標を指定します (論理単位)。x3
丸い角を描画するために使う楕円の幅を指定します (論理単位)。y3
丸い角を描画するために使う楕円の高さを指定します (論理単位)。lpRect
外接する四角形を論理単位で指定します。このパラメータには、CRect オブジェクトまたは RECT 構造体へのポインタを渡すこともできます。point
point の x 座標は、丸い角を描画する楕円の幅を指定します (論理単位)。point の y 座標は、丸い角を描画する楕円の高さを指定します (論理単位)。このパラメータには、POINT 構造体または CPoint オブジェクトを渡すことができます。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
四角形の内部は現在のブラシを使用して塗りつぶされます。
この関数で描画される図形は右下隅の座標まで拡張されます。ただし右下隅の座標は含みません。つまり、図形の高さは y2 - y1、図形の幅は x2 - x1 になります。外接する四角形の幅と高さは共に 2 単位より大きく、32,767 単位より小さくする必要があります。
使用例
void CDCView::DrawRoundRect(CDC* pDC)
{
// create and select a solid blue brush
CBrush brushBlue(RGB(0, 0, 255));
CBrush* pOldBrush = pDC->SelectObject(&brushBlue);
// create and select a thick, black pen
CPen penBlack;
penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
CPen* pOldPen = pDC->SelectObject(&penBlack);
// get our client rectangle
CRect rect;
GetClientRect(rect);
// shrink our rect 20 pixels in each direction
rect.DeflateRect(20, 20);
// Draw a thick black rectangle filled with blue
// corners rounded at a 17-unit radius. Note that
// a radius of three or less is not noticable because
// the pen is three units wide.
pDC->RoundRect(rect, CPoint(17, 17));
// put back the old objects
pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);
}
必要条件
ヘッダー : afxwin.h