似乎可以啊。 Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) MsgBox "FSDfsA" Call Picture1_MouseMove(Button, Shift, X, Y) End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)MsgBox "fdsdfSA" End Sub
Private Const WM_LBUTTONDOWN = &H201 Private 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 Const MK_LBUTTON = &H1Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) SendMessage Picture1.hwnd, WM_LBUTTONDOWN, MK_LBUTTON, Y * &HFFFF + X End SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) MsgBox "我被点了" End Sub
看错题了,应该是这样 Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Call Picture1_MouseDown(Button, Shift, X, Y) End Sub Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Call Picture1_MouseMove(Button, Shift, X, Y) End Sub Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Call Picture1_MouseDown(Button, Shift, X, Y) End Sub Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Call Picture1_MouseUp(Button, Shift, X, Y) End Sub
坐标转换: 因为Image是放置在Picture中的, 那么在Image中的X,换成Picture中的X应该是Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Call Picture1_MouseDown(Button, Shift,image1.left+ X, image1.TOp+Y) End Sub
SetWindowLong【操作系统】
Win9X:Yes
WinNT:Yes【声明】
SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long【说明】 在窗口结构中为指定的窗口设置信息 【返回值】 Long,指定数据的前一个值 【其它】
【参数表】
hwnd ----------- Long,欲为其取得信息的窗口的句柄 nIndex --------- Long,请参考GetWindowLong函数的nIndex参数的说明 dwNewLong ------ Long,由nIndex指定的窗口信息的新值
Private Const WM_LBUTTONDOWN = &H201
发送给Picture控件。
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox "FSDfsA"
Call Picture1_MouseMove(Button, Shift, X, Y)
End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)MsgBox "fdsdfSA"
End Sub
Private 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 Const MK_LBUTTON = &H1Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
SendMessage Picture1.hwnd, WM_LBUTTONDOWN, MK_LBUTTON, Y * &HFFFF + X
End SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MsgBox "我被点了"
End Sub
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call Picture1_MouseDown(Button, Shift, X, Y)
End Sub
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call Picture1_MouseMove(Button, Shift, X, Y)
End Sub
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call Picture1_MouseDown(Button, Shift, X, Y)
End Sub
Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call Picture1_MouseUp(Button, Shift, X, Y)
End Sub
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
pascal可以这样用,vb里面可以吗?API函数应该差不多
Handle为控件的句柄,
因为Image是放置在Picture中的,
那么在Image中的X,换成Picture中的X应该是Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call Picture1_MouseDown(Button, Shift,image1.left+ X, image1.TOp+Y)
End Sub
不是的话,image控件什么时候停止移动?