设置窗体形状

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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注