RT,我是使用网上找的API的方法来实现拖曳窗体中的Picturebox控件。
代码如下: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 Any) As Long
Private Const WM_SYSCOMMAND = &H112
Private Const SC_MOVE = &HF010&
Private Const HTCAPTION = 2
Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long 'MessageBox 函数需要
这是声明API。Private Sub Picture2_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Intbeishu As Integer
Dim InttempX As Single
If Flagdrivepart = True Then            '一个标记
    ReleaseCapture
    SendMessage Picture2(Index).hwnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0
    Picture2(Index).top = Picture1.top'以下两行代码防止拖出picture1范围。拖动的是picture2(i),二者之间没有容器关系。
    If Picture2(Index).left < Picture1.left Then Picture2(Index).left = Picture1.left
    If Picture2(Index).left > Picture1.left + Picture1.Width Then Picture2(Index).left = Picture1.left + Picture1.Width - Picture2(Index).Width
    
    LeftX(Index) = Picture2(Index).leftElse
End IfEnd Sub我现在想要对Picture2做一个限定,使得拖动的过程中,它的横向移动是一个最小标度的整数倍。所以希望获得拖动后的坐标来进行判定。所以请教下各位大神,如何来获得拖动之后的坐标,或者拖动时的坐标,或者有没有更好的办法,来限定拖动时的控件移动位是给定最小标度的一个整数倍?