在窗体中,对图片进行拖拽,该如何编码?!
谢谢!
谢谢!
解决方案 »
- 正则表达式如果想提取一段字符里的中英文字符外加空格符/括号/全角字符(用来做文件名)要怎么写?
- 如何在不同地方调用Adodb.recordset
- MSCOMM控件
- 高手指点呀。在线。。
- 918
- 有关DATAGRID控件的疑问~
- 引用列表框(LIST1)最后一个数据应使用什么啊?怎么写啊?
- Hide process from task manager with NtquerysystemInformation
- picturebox图片和文字合成后储存的问题
- 向acptvb (微软全球技术中心 VB技术支持) 请教几个不好回答的问题。
- 如何把listbox中的条目的值取出来放在一个数组中啊
- 欢迎探讨--Excel报表输出效率问题
首先介绍与拖放有关的控件:
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
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