小弟只剩10分,还请大虾,不惜赐教。
HI

解决方案 »

  1.   

    Private Sub Pic2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
      Private Type Point
        X As Single
        Y As Single
      End Type
      Dim pos As Point
            If Button = 2 Then
            If Pic2.Tag = "" Then
                Pic2.Tag = "1"
                pos.X = X
                pos.Y = Y
            Else
                Pic2.Tag = ""
                Pic2.Left = Pic2.Left - CLng((pos.X - X) * 15)
                Pic2.Top = Pic2.Top - CLng((pos.Y - Y) * 15)
            End If
        End If
    End SubPrivate Sub Pic2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Pic2.Tag = ""
    End Sub这是一段用右键拖动图片框的代码,scalemode预先设置成了pixel,1 pixel=15 twip。
      

  2.   

    例:Private mintOldX        As Integer   '记录旧的X坐标
    Private mintOldY        As Integer   '记录旧的Y坐标
    Private mvarFlagMove    As Boolen    '判断是否可移动
    Private mblnDown        As Boolean    '是否移动标志
    Private Sub picMarkPicture_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
        mintOldX = X: mintOldX = Y
        If mvarFlagMove = 1 Then
            mblnDown = True
        End If
    End SubPrivate Sub picMarkPicture_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
        If mvarFlagMove = 0 Then
            Exit Sub
        End If
        
        If mblnDown Then
            picMarkPicture(Index).Left = picMarkPicture(Index).Left + X - mintOldX
            picMarkPicture(Index).Top = picMarkPicture(Index).Top + Y - mintOldX
            
            mintNewXArray(Index) = picMarkPicture(Index).Left
            mintNewYArray(Index) = picMarkPicture(Index).Top
        End If
    End SubPrivate Sub picMarkPicture_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
        '控制不能移出控件外
        If mvarFlagMove = 0 Then
            Exit Sub
        End If
        
        If picMarkPicture(Index).Left < 0 Then '左
            picMarkPicture(Index).Left = 0
        End If
        
        If picMarkPicture(Index).Top < 0 Then '下
            picMarkPicture(Index).Top = 0
        End If
        
        If picMarkPicture(Index).Left > UserControl.Width - picMarkPicture(Index).Width Then
            picMarkPicture(Index).Left = UserControl.Width - picMarkPicture(Index).Width
        End If
        
        If picMarkPicture(Index).Top > UserControl.Height - picMarkPicture(Index).Height Then
            picMarkPicture(Index).Top = UserControl.Height - picMarkPicture(Index).Height
        End If
        
        mblnDown = False
    End Sub