⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module1.bas

📁 VB高级程序设计高手篇
💻 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 + -