怎样拖动没有控制栏的窗体?

控制栏被取消了,但想通过拖动改变窗体在桌面上的位置,请教如何实现?
[33 byte] By [dz08039] at [2008-2-12]
# 1
鼠标在窗体上移动事件,改变form的left、top
zglnew-zgl at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 2
Declare Function ReleaseCapture Lib "user32" () As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage hWnd, &HA1, 2, 0&
End Sub
captainivy-Ivy at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 3
移动没有标题栏的窗口
我们一般是用鼠标按住窗口的标题栏,然后移动窗口,当窗口没有标题栏时,我们可以用下面的方法来移动窗口:
在 BAS 文件中声明:
Declare Function ReleaseCapture Lib "user32" () As Long
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 HTCAPTION = 2
Public Const WM_NCLBUTTONDOWN = &HA1
然后,在 Form_MouseDown 事件中:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub
dyx-天火 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...