
Option Explicit
Public Declare Function CreateEllipticRgn Lib “GDI32” (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function SetWindowRgn Lib “user32” (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long
Public Declare Function CreatePolygonRgn Lib “GDI32” (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Public Type POINTAPI
X As Long
Y As Long
End Type
Public Sub RoundForm()
Dim hRgn As Long, lRes As Long
‘圆形窗体
hRgn = CreateEllipticRgn(30, 24, 456, 450)
lRes = SetWindowRgn(Me.hWnd, hRgn, True)
End Sub
Public Sub CrossForm()
Dim hRgn As Long, lRes As Long
Dim pNode() As POINTAPI
ReDim pNode(11) As POINTAPI
‘十字窗体
pNode(0).X = 156
pNode(0).Y = 42
pNode(1).X = 329
pNode(1).Y = 42
pNode(2).X = 329
pNode(2).Y = 154
pNode(3).X = 439
pNode(3).Y = 154
pNode(4).X = 439
pNode(4).Y = 317
pNode(5).X = 329
pNode(5).Y = 317
pNode(6).X = 329
pNode(6).Y = 429
pNode(7).X = 156
pNode(7).Y = 429
pNode(8).X = 156
pNode(8).Y = 317
pNode(9).X = 46
pNode(9).Y = 317
pNode(10).X = 46
pNode(10).Y = 154
pNode(11).X = 156
pNode(11).Y = 154
hRgn = CreatePolygonRgn(pNode(0), 12, 2)
lRes = SetWindowRgn(Me.hWnd, hRgn, True)
End Sub