?? module1.bas
字號:
Attribute VB_Name = "Module1"
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 CreateRectRgn 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 Boolean _
) As Long
Public Declare Function CombineRgn Lib "gdi32" _
( _
ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, _
ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long _
) As Long
Public Const RGN_AND = 1
'將兩個區域相加
Public Const RGN_COPY = 5
'創建hSrcRgn1的拷貝
Public Const RGN_DIFF = 4
'將兩個區域相減
Public Const RGN_OR = 2
'將兩個區域進行或操作
Public Const RGN_XOR = 3
'將兩個區域進行異或操作
Public Const RGN_MAX = RGN_COPY
Public Const RGN_MIN = RGN_AND
Public Sub SetWindow(f1 As Form)
'該子過程實現設置窗口形狀
Dim hSrcRgn1, hSrcRgn2, hSrcRgn3 As Long
hSrcRgn1 = CreateEllipticRgn(5, 23, 397, 415)
'創建最外面的大圓區域
hSrcRgn2 = CreateEllipticRgn(90, 74, 395, 362)
'創建中間的圓區域
hSrcRgn3 = CreateEllipticRgn(183, 120, 395, 320)
'創建最里層的小圓區域
CombineRgn hSrcRgn1, hSrcRgn1, hSrcRgn2, RGN_DIFF
'用大圓減去中間的圓得到的區域保存在hSrcRgn1
CombineRgn hSrcRgn1, hSrcRgn1, hSrcRgn3, RGN_OR
'用得到的區域加上小圓并保存在hSrcRgn1
SetWindowRgn f1.hWnd, hSrcRgn1, True
End Sub
Public Sub Reset(f1 As Form)
'該子過程實現恢復窗口形狀為矩形
Dim hSrcRgn4 As Long
hSrcRgn4 = CreateRectRgn(0, 0, f1.Width, f1.Height)
'創建矩形
SetWindowRgn f1.hWnd, hSrcRgn4, True
'將窗口恢復為矩形
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -