GraphicsPath::IsVisible(constPointF&,constGraphics*)-Methode (gdipluspath.h)
Die GraphicsPath::IsVisible-Methode bestimmt, ob ein angegebener Punkt in dem Bereich liegt, der gefüllt wird, wenn dieser Pfad von einem angegebenen Graphics-Objekt gefüllt wird.
Syntax
BOOL IsVisible(
const PointF & point,
const Graphics *g
);
Parameter
point
Verweis auf den zu prüfenden Punkt.
g
Optional. Zeiger auf ein Graphics-Objekt , das eine Welt-zu-Gerät-Transformation angibt. Wenn der Wert dieses Parameters NULL ist, erfolgt der Test in weltkoordinaten; Andernfalls erfolgt der Test in Gerätekoordinaten. Der Standardwert ist NULL.
Rückgabewert
Wenn der Testpunkt im Inneren dieses Pfads liegt, gibt diese Methode TRUE zurück. Andernfalls wird FALSE zurückgegeben.
Bemerkungen
Beispiele
Das folgende Beispiel erstellt einen elliptischen Pfad und zeichnet diesen Pfad mit einem schmalen schwarzen Stift. Anschließend testet der Code jeden Punkt in einem Array, um zu sehen, ob der Punkt im Inneren des Pfads liegt. Punkte, die im Inneren liegen, werden grün gezeichnet, und Punkte, die nicht im Inneren liegen, werden rot gezeichnet.
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);
}
}
Anforderungen
Kopfzeile | gdipluspath.h |