CDC::Chord
弦 (楕円と線分が交わってできる閉じられた領域) を描画します。
BOOL Chord(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
int x4,
int y4
);
BOOL Chord(
LPCRECT lpRect,
POINT ptStart,
POINT ptEnd
);
パラメーター
x1
コードの外接する四角形の左上隅の x 座標を指定します (論理単位で)。y1
コードの外接する四角形の左上隅の y 座標を指定します (論理単位で)。x2
コードの外接する四角形の右上隅の x 座標を指定します (論理単位で)。y2
コードの外接する四角形の右上隅の y 座標を指定します (論理単位で)。x3
コードの開始点を定義する点の x 座標を指定します (論理単位で)。y3
コードの開始点を定義する位置の y 座標を指定します (論理単位で)。x4
コードのエンドポイントを定義する点の x 座標を指定します (論理単位で)。y4
コードのエンドポイントを定義する位置の y 座標を指定します (論理単位で)。lpRect
外接する四角形を指定します (論理単位で)。このパラメーターの LPRECT か CRect のオブジェクトを渡すこともできます。ptStart
コードの開始点を定義する点の x 座標と y 座標を指定します (論理単位で)。このポイントはコードに対応する必要はありません。このパラメーターの [ポイント] の構造や CPoint のオブジェクトを渡すこともできます。ptEnd
コードの終了点を定義する点の x 座標と y 座標を指定します (論理単位で)。このポイントはコードに対応する必要はありません。このパラメーターの [ポイント] の構造や CPoint のオブジェクトを渡すこともできます。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
(x1、y1) および (x2、パラメーター y2) コードの一部である楕円に外接する四角形の左上隅および右下隅をそれぞれ指定します。(x3、y3) および (x4、パラメーター y4) 楕円と交差する行のエンドポイントを指定します。コードは選択されているペンを使用して描画、選択したブラシで塗りつぶされます。
Chord の関数によって描画図にまで拡張されますが、右、下座標は含まれません。これは、図形の高さが y2 –図の y1 と幅 x2 あります。x1がであることを意味します。
使用例
void CDCView::DrawChord(CDC* pDC)
{
// Fill the client area with a circle. The circle is
// blue and filled with blue, but has a chord cut out
// of it from 3 o'clock to 6 o'clock. That chord is
// red and filled with a red diagonal hatch.
// Get the client area.
CRect rectClient;
GetClientRect(rectClient);
// Make a couple of pens and similar brushes.
CPen penBlue, penRed;
CBrush brushBlue, brushRed;
CBrush* pOldBrush;
CPen* pOldPen;
brushBlue.CreateSolidBrush(RGB(0, 0, 255));
brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));
// Draw from 3 o'clock to 6 o'clock, counterclockwise,
// in a blue pen with a solid blue fill.
pOldPen = pDC->SelectObject(&penBlue);
pOldBrush = pDC->SelectObject(&brushBlue);
pDC->Chord(rectClient,
CPoint(rectClient.right, rectClient.CenterPoint().y),
CPoint(rectClient.CenterPoint().x, rectClient.right));
// Draw the remaining quarter chord from 6 o'clock
// to 3 o'clock, counterclockwise, in a red pen
// with the hatched brush.
pDC->SelectObject(&penRed);
pDC->SelectObject(&brushRed);
// Keep the same parameters, but reverse start and
// end points.
pDC->Chord(rectClient,
CPoint(rectClient.CenterPoint().x, rectClient.right),
CPoint(rectClient.right, rectClient.CenterPoint().y));
// Restore the previous pen.
pDC->SelectObject(pOldPen);
}
必要条件
ヘッダー: afxwin.h