API函数CreatePolygonRgn建立一个区域,然后FillRgn以某种颜色填充该区域。Private Type POINTAPI
        X As Long
        Y As Long
End Type
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End TypePrivate Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, _
        ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, _
        ByVal hRgn As Long, ByVal hBrush As Long) As Long
Private Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, _
        ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) _
        As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal _
        hObject As Long) As Long
Private Declare Function GetLastError Lib "kernel32" () As LongConst ALTERNATE = 1
Const WINDING = 2Dim hRgn As LongPrivate Sub Command1_Click()
    Dim xx(4) As POINTAPI
    Dim lB As Long
    Dim lOld As Long
    
    xx(0).X = 0: xx(0).Y = 0
    xx(1).X = 50: xx(1).Y = 0
    xx(2).X = 50: xx(2).Y = 50
    xx(3).X = 0: xx(3).Y = 50
    xx(4).X = 5: xx(4).Y = 25
    
    '建立不规则区域
    hRgn = CreatePolygonRgn(xx(0), 5, ALTERNATE)
    If hRgn <> 0 Then
        lB = CreateSolidBrush(RGB(255, 0, 0))
        '填充不规则区域
        Debug.Print FillRgn(Picture1.hdc, hRgn, lB)
    End If
End Sub