Public Declare Function ReleaseCapture Lib "user32" () As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2
Public Const HTLEFT = 10
Public Const HTRIGHT = 11
Public Const HTTOP = 12
Public Const HTTOPLEFT = 13
Public Const HTTOPRIGHT = 14
Public Const HTBOTTOM = 15
Public Const HTBOTTOMLEFT = 16
Public Const HTBOTTOMRIGHT = 17
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim sctop, sleft
top1 = Top
left1 = Left
ReleaseCapture
If X > ScaleWidth - 50 And Y > ScaleHeight - 50 Then
SendMessage hWnd, WM_NCLBUTTONDOWN, HTBOTTOMRIGHT, 0&
ElseIf X < 5 Then
SendMessage hWnd, WM_NCLBUTTONDOWN, HTLEFT, 0&
ElseIf X > ScaleWidth - 5 Then
SendMessage hWnd, WM_NCLBUTTONDOWN, HTRIGHT, 0&
ElseIf Y < 5 Then
SendMessage hWnd, WM_NCLBUTTONDOWN, HTTOP, 0&
ElseIf Y > ScaleHeight - 5 Then
SendMessage hWnd, WM_NCLBUTTONDOWN, HTBOTTOM, 0&
Else
SendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
Form2.Left = Form2.Left + Form1.Left - left1
Form2.Top = Form2.Top + Form1.Top - top1
End If
Shape1.Move Me.ScaleLeft, Me.ScaleTop, Me.ScaleWidth, Me.ScaleHeight
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X < 5 Or X > ScaleWidth - 5 Then
MousePointer = vbSizeWE
ElseIf Y < 5 Or Y > ScaleHeight - 5 Then
MousePointer = vbSizeNS
ElseIf X > ScaleWidth - 50 And Y > ScaleHeight - 50 Then
MousePointer = vbSizeNWSE
Else
MousePointer = vbSizePointer
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MyRgn <> 0 Then DeleteObject MyRgn
If OutRgn <> 0 Then DeleteObject OutRgn
If InRgn <> 0 Then DeleteObject InRgn
End Sub
ifMsg.message=WM—LButtonDown then
begin
{判断光标是否在用户工作区内}
if DefWindowProc(Handle,WM—NCHitTest,0,Get
MessagePos)ΚHTClient then
begin
{发出鼠标在用户标题栏内被按下的消息}
SendMessage(Handle,WM—NCLButtonDown,
HTCaption,GetMessagePos);
Handled:=true;{消息处理完毕,窗体不再接受M
ouseDown及Click事件,如果为false,程序的运行稍微有
些不正常。}
end;
end;
end;