GraphicsPath::IsVisible(constPointF&,constGraphics*) メソッド (gdipluspath.h)
GraphicsPath::IsVisible メソッドは、このパスが指定された Graphics オブジェクトによって塗りつぶされたときに塗りつぶされた領域に指定されたポイントがあるかどうかを決定します。
構文
BOOL IsVisible(
const PointF & point,
const Graphics *g
);
パラメーター
point
テストするポイントへの参照。
g
省略可能。 ワールドツーデバイス変換を指定する Graphics オブジェクトへのポインター。 このパラメーターの値が NULL の場合、テストはワールド座標で行われます。それ以外の場合、テストはデバイス座標で行われます。 既定値は NULL です。
戻り値
テスト ポイントがこのパスの内部にある場合、このメソッドは TRUE を返します。それ以外の場合は、 FALSE を返します。
解説
例
次の例では、楕円パスを作成し、そのパスを狭い黒いペンで描画します。 次に、配列内の各ポイントをテストして、ポイントがパスの内部にあるかどうかを確認します。 内部に存在する点は緑色に塗られ、内部に横たわっていない点は赤色に塗られます。
VOID IsVisibleExample(HDC hdc)
{
Graphics graphics(hdc);
INT j;
Pen blackPen(Color(255, 0, 0, 0), 1);
SolidBrush brush(Color(255, 255, 0, 0));
// Create and draw a path.
GraphicsPath path;
path.AddEllipse(50, 50, 200, 100);
graphics.DrawPath(&blackPen, &path);
// Create an array of four points, and determine whether each
// point in the array touches the outline of the path.
// If a point touches the outline, paint it green.
// If a point does not touch the outline, paint it red.
PointF[] = {
PointF(50, 100),
PointF(250, 100),
PointF(150, 170),
PointF(180, 60)};
for(j = 0; j <= 3; ++j)
{
if(path.IsVisible(points[j], &graphics))
brush.SetColor(Color(255, 0, 255, 0));
else
brush.SetColor(Color(255, 255, 0, 0));
graphics.FillEllipse(&brush, points[j].X - 3.0f, points[j].Y - 3.0f, 6.0f, 6.0f);
}
}
要件
Header | gdipluspath.h |