在窗体中,对图片进行拖拽,该如何编码?!
谢谢!

解决方案 »

  1.   

    给你个拖放的例子子吧,看一下就会了
       首先介绍与拖放有关的控件:
      1.属性:DragMode决定拖动操作的初始化是人工方式还是自动方式   
       DragIcon确定在拖动过程中显示的指针的图标形状
      2.方法:Drag开始,结束或取消拖动控件
      3.事件:MouseDown事件发生于用户按下鼠标按钮时。DragOver事件发生于拖动操作完成时。DragDrop事件发生于拖动操作正在进行时。
      然后编写一个小程序,这个程序能实现在窗口中或窗口间拖动图标的功能。建立窗口Form1和Form2,在窗口中都加入Image1,其中Form1下的Image1.picture为你想显示的图标。
      Form1下程序代码为:
      Option Explicit
      Dim dragx As Single
      Dim dragy As Single
      Const BEGIN_DRAG=1
      Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
        Image1.Picture=Source   ;Sourse为被拖动的控件
      Form2.Image1.Picture=LoadPicture(″″)
      Image1.Move(X-dragx),(Y-dragy); X,Y为鼠标所在目标窗体或控件的当前坐标
      End Sub
      Private Sub Form_Load()
       Load Form2
       Form2.Show 0
      End Sub
      Private Sub Image1_MouseDown(Button As Integer,Shift As Integer,
    X As Single,Y As Single)
       dragx=X
       dragy=Y
       Image1.Drag BEGIN_DRAG   ;开始拖动操作
       Image1.DragIcon = LoadPicture(″按下鼠标时想显示的光标″)
      End Sub
       Form2下程序代码为:
      Option Explicit
      Dim dragx As Single
      Dim dragy As Single
      Const BEGIN_DRAG=1
      Private Sub Form_DragDrop(Source As Control,X As Single,Y As Single)
       Image1.Picture=Source
       Form1.Image1.Picture=LoadPicture(″″)
       Image1.Move(X-dragx),(Y-dragy)
      End Sub
      Private Sub Image1_MouseDown(Button As Integer, Shift As Integer,
    X As Single,Y As Single)
       dragx=X
       dragy=Y
       Image1.Drag BEGIN_DRAG
       Image1.DragIcon=LoadPicture(″按下鼠标时想显示的光标″)
      End Sub
      

  2.   

    放一个标签与图像框
    Private Sub picMain_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        
        '保存当前左上点在窗体的位置
        m_EndX = X + picMain.Left
        m_EndY = Y + picMain.Top
        
        m_picEndX = X
        m_picEndY = Y
        
        '移动外框
        lblPic.Move picMain.Left, picMain.Top, picMain.Width, picMain.Height
        ' 拖标签轮廓
        lblPic.Drag
        
    End SubPrivate Sub picMain_DragDrop(Source As Control, X As Single, Y As Single)
    '图片移动
        picMain.MouseIcon = LoadResPicture(2, 1)
        picMain.Move picMain.Left + (X - m_picEndX), picMain.Top + (Y - m_picEndY), lblPic.Width, lblPic.HeightEnd SubPrivate Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
    '图片移动
        picMain.MouseIcon = LoadResPicture(2, 1)
        picMain.Move picMain.Left + (X - m_EndX), picMain.Top + (Y - m_EndY), lblPic.Width, lblPic.Height    
        
    End Sub