VB 拖动控件移动窗体

来源:百度知道 编辑:UC知道 时间:2024/05/14 06:03:07
我在FORM1里搞了一张PictureBox,并放进了一张图片,放在了没有标题栏的form1的最上边代替标题栏,但是鼠标无法拖动图片来移动窗体,在网上只找到了拖动窗体移动的代码,没有我这个样子的,求高人写下代码,今天第7次发VB菜鸟题了,同样,答对了另外附加100分。
看看这个代码是否可以使用
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Const HTCAPTION = 2
Const WM_NCLBUTTONDOWN = &HA1
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
If Button = 1 Then
Dim ReturnVal As Long
x = ReleaseCapture()
ReturnVal = SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
End If
End Sub

Option Explicit
'变量声明
'MoveScreen,布尔型变量,标示窗体是否处于被移动状态
Dim MoveScreen As Boolean

'鼠标位置
Dim MousX As Integer
Dim MousY As Integer
'窗体位置
Dim CurrX As Integer
Dim CurrY As Integer

'“退出”按钮
Private Sub CmdExit_Click()
End
End Sub

'当鼠标在窗体上按下时
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'---------------------------------------------
'参数说明:
'---------------------------------------------
'button 返回一个整数,用来标识按下或释放的是哪一
'个按钮。button 参数的值为相应于左按钮(1)右按钮
'(2),以及中间按钮(4)。
'---------------------------------------------
'shift 返回一个整数,在鼠标按钮被按下或者被释放
'的同时,SHIFT,CTRL,和 ALT 键的状态,返回的shift
'参数值分别为1,2,和 4。指示这些键的状态。
'---------------------------------------------
'x, y 返回一个指定鼠标指针当前位置的数。
'-------------------------------------------