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)