Interactive PowerBasic Forum

Legacy Software (PBWIN 9.0+/PBCC 5.0+) => Source Code => Graphics and Multimedia => GDI+ (GDI Plus) => Topic started by: José Roca on June 22, 2008, 01:15:40 PM

Title: GDI+: GdipCloneBrush
Post by: José Roca on June 22, 2008, 01:15:40 PM


The following example creates a solid brush, clones it, and then uses the clone to fill a rectangle.

C++


VOID Example_Clone(HDC hdc)
{
   Graphics graphics(hdc);
   // Create a SolidBrush object.
   SolidBrush solidBrush(Color(255, 255, 0, 0));
   // Create a copy of solidBrush.
   Brush *cloneBrush = solidBrush.Clone();
   // Use cloneBrush to fill a rectangle.
   graphics.FillRectangle(cloneBrush, Rect(0, 0, 100, 100));
}


PowerBASIC


SUB GDIP_CloneBrush (BYVAL hdc AS DWORD)

   LOCAL hStatus AS LONG
   LOCAL pGraphics AS DWORD
   LOCAL pBrush AS DWORD
   LOCAL pCloneBrush AS DWORD
   LOCAL pixelColor AS DWORD

   hStatus = GdipCreateFromHDC(hdc, pGraphics)

   ' // Create an ARGB color
   pixelColor = GDIP_ARGB(255, 255, 0, 0)

   ' // Create a SolidBrush
   hStatus = GdipCreateSolidFill(pixelColor, pBrush)

   ' // Create a clone of the SolidBrush
   hStatus = GdipCloneBrush(pBrush, pCloneBrush)

   ' // Use the clone brush to fill a rectagle
   hStatus = GdipFillRectangleI(pGraphics, pCloneBrush, 0, 0, 100, 100)

   ' // Cleanup
   IF pCloneBrush THEN GdipDeleteBrush(pCloneBrush)
   IF pBrush THEN GdipDeleteBrush(pBrush)
   IF pGraphics THEN GdipDeleteGraphics(pGraphics)

END SUB


(http://www.jose.it-berater.org/captures/GdipCloneBrush.png)