• Welcome to Jose's Read Only Forum 2023.
 

GDI+: GdipClosePathFigure

Started by José Roca, June 22, 2008, 05:36:14 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

José Roca


The following example creates a GraphicsPath object path and adds two figures to path. The code closes the first figure, but leaves the second figure open.

C++


VOID Example_CloseFigure(HDC hdc)
{
   Graphics graphics(hdc);

   Rect rect1(20, 20, 50, 100);
   Rect rect2(40, 40, 50, 100);

   GraphicsPath path;
   path.AddArc(rect1, 0.0f, 180.0f);  // first figure
   path.CloseFigure();                // first figure closed
   path.AddArc(rect2, 0.0f, 180.0f);  // second figure

   // Draw the path.
   Pen pen(Color(255, 255, 0, 0));
   graphics.DrawPath(&pen, &path);
}


PowerBASIC


SUB GDIP_ClosePathFigure (BYVAL hdc AS DWORD)

   LOCAL hStatus AS LONG
   LOCAL pGraphics AS DWORD
   LOCAL pPath AS DWORD
   LOCAL pPen AS DWORD

   hStatus = GdipCreateFromHDC(hdc, pGraphics)

   hStatus = GdipCreatePath(%FillModeAlternate, pPath)
   ' // First figure
   hStatus = GdipAddPathArc(pPath, 20, 20, 50, 100, 0, 180)
   ' // First figure closed
   hStatus = GdipClosePathFigure(pPath)
   ' // Second figure
   hStatus = GdipAddPathArc(pPath, 40, 40, 50, 100, 0, 180)

   ' // Draw the path.
   hStatus = GdipCreatePen1(GDIP_ARGB(255, 255, 0, 0), 1, %UnitWorld, pPen)
   hStatus = GdipDrawPath(pGraphics, pPen, pPath)

   ' // Cleanup
   IF pPen THEN GdipDeletePen(pPen)
   IF pPath THEN GdipDeletePath(pPath)
   IF pGraphics THEN GdipDeleteGraphics(pGraphics)

END SUB