VB无边框窗体怎么设计成圆角窗体

就是4个角变成圆的,窗体变成矩形。
边角半径设置成10就可以了

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Sub Form_Load()
    '背景透明
    Dim crKey As Long, bAlpha As Byte, dwFlags As Long
    Call SetWindLong
    dwFlags = 1           '1 只有 crKey 指定的颜色才透明,忽略 bAlpha 参数
    crKey = Me.BackColor '窗体中设为透明的颜色
    SetLayeredWindowAttributes Me.hWnd, crKey, bAlpha, dwFlags
End Sub
Private Sub SetWindLong()
    Dim ExsTyle As Long
    Const WS_EX_Layered = &H80000, GWL_ExsTyle = -20
    ExsTyle = GetWindowLong(Me.hWnd, GWL_ExsTyle)
    ExsTyle = ExsTyle Or WS_EX_Layered
    SetWindowLong Me.hWnd, GWL_ExsTyle, ExsTyle
End Sub


在窗口上加一个Shape控件,把风格设置为圆角矩形,设置背景为不透明,可以把背景色设置为窗口一样的颜色。窗口在调色板页卡选择一个颜色,这个颜色将被处理为透明,不要在系统页卡上选色。把shape扩大到与窗口贴边,这样运行后会裁掉窗口角上部分,保留矩形框部分。

温馨提示:答案为网友推荐,仅供参考