代码给你! Option ExplicitPrivate Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long Private Declare Function ReleaseCapture Lib "user32" () As LongConst HTCAPTION = 2 Const WM_NCLBUTTONDOWN = &HA1Const RGN_AND = 1 Const RGN_OR = 2Private Sub Command1_Click() Unload Me End SubPrivate Sub Form_Load() Dim Hrgn1 As Long Dim Hrgn2 As Long Me.BackColor = vbBlack Hrgn1 = CreateRoundRectRgn(4, 23, 300, 200, 20, 20) Hrgn2 = CreateRectRgn(4, 180, 299, 200)
CombineRgn Hrgn1, Hrgn1, Hrgn2, RGN_OR
SetWindowRgn Me.hWnd, Hrgn1, True End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ReleaseCapture SendMessage Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0& End Sub
Option ExplicitPrivate Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "user32" () As LongConst HTCAPTION = 2
Const WM_NCLBUTTONDOWN = &HA1Const RGN_AND = 1
Const RGN_OR = 2Private Sub Command1_Click()
Unload Me
End SubPrivate Sub Form_Load()
Dim Hrgn1 As Long
Dim Hrgn2 As Long
Me.BackColor = vbBlack
Hrgn1 = CreateRoundRectRgn(4, 23, 300, 200, 20, 20)
Hrgn2 = CreateRectRgn(4, 180, 299, 200)
CombineRgn Hrgn1, Hrgn1, Hrgn2, RGN_OR
SetWindowRgn Me.hWnd, Hrgn1, True
End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0&
End Sub