CreatePolygonRgn (gdi32)
Last changed: -


C# Signature:

static extern IntPtr CreatePolygonRgn(POINT [] lppt, int cPoints,
   int fnPolyFillMode);

User-Defined Types:



Values for fnPolyFillMode can be 1=Alternate or 2=Winding

Tips & Tricks:

System.Drawing.Point can be used instead POINT.

static extern IntPtr CreatePolygonRgn(Point[] lppt, int cPoints, int fnPolyFillMode);

VBNET Signatute :

    Private Shared Function CreatePolygonRgn(ByVal lppt As Point(), ByVal NumberOfPoints As Integer, ByVal fnPolyFillMode As Integer) As IntPtr

    End Function

Sample Code:

/// <summary>
/// Create a border for custom label control
/// </summary>
/// <returns>
/// if int is returned. Function was successful.
/// if string is returned. Function was failed.
/// </returns>
/// <remarks>Created by Jim Vazquez Castan.</remarks>
private string SetBorder()
    // First we create polygon
    IntPtr forma = CreatePolygonRgn(edges, edges.Length, 1);
    // then we create area
    int iRes = SetWindowRgn(this.Handle, forma, true);

    return iRes.ToString();
    catch (Exception ex) { return ex.Message; }

Alternative Managed API:

Do you know one? Please contribute it!