龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

VB5.0中实现鼠标拖放

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
Windows3.x、Windows95和Widnows98中,拖放是最常用的操作,VB5.0在程序设计中能非常容易地实现这一操作。 与拖放有关的属性 1、DragMode属性 该属性用来设置自动或手动拖放模式,缺省值为0(
Windows3.x、Windows95和Widnows98中,拖放是最常用的操作,VB5.0在程序设计中能非常容易地实现这一操作。
  与拖放有关的属性
  1、DragMode属性
  该属性用来设置自动或手动拖放模式,缺省值为0(手动方式)。为了让控件自动执行拖放操作,必须把它的属性设为1,该属性即可以在属性窗口中设置,也可以在程序中设置,如:Picture1.DragMode=1一个对象的DragMode属性值为1时,该控件不再接收Click事件和MouseDown事件。

2、DragIcon属性
  在拖动中,并非对象本身在移动,而是代表对象的图标。即一旦拖动某个控件,该控件就变成一个图标,放下后再恢复原来控件。DragIcon属性含有一个图标或图片的文件名,如:Picture1.DragIcon=c:vb5iconscomputerdisk06.ico当拖动Picture1时,Picture1即变成由disk06.ico所代表的图标。
  与拖放有关的事件
  与拖放有关的事件是DragDrop和DragOver,把控件拖动,如松开鼠标按钮,则产生DragDrop事件,事件过程格式如下:
  Sub对象名_DragOver(SourceAsControl,XAsSingle,YAssingle,StateAsInteger)
  ......
  EndSub

该对象含有三个参数,其中Source为一个对象变量,类型为Control.该参数含有被托动对象的属性,参数X、Y为松开鼠标按钮时光标的位置。
  DragOver事件用于图标移动,格式如下
  Sub对象名_DragOver(SourceAsControl,XAsSingle,YAsSingle,StateAsInteger)
  ……
  EndSub

该事件含有四个参数,Source含义同前,X、Y是鼠标托动时光标的位置坐标,State有三个值可取,当为0时,鼠标光标正进入目标对象区域,当为1时,鼠标光标正退出目标对象区域,当为2时,鼠标光标正位于目标对象的区域之内。
  与拖放有关的方法
  与拖放有关的方法是Move和Drag。Move方法大家已经很熟悉了,下面介绍Drag方法,Drag方法格式为:
  控件.Drag整数,整数范围为0,1,2含义分别为:
  0取消托动操作,1开始拖动操作,2结束操作手动举例在窗体上建立一个图片框,装入一个图标,首先设置图片框的DragIcon属性。

SubForm_Load()
  Picture1.DragIcon=Picture1.Picture1.Picture
  EndSub

接着用MouseDown事件过程打开拖拉开关。
  SubPicture1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  Picture1.Drag1
  EndSub

下面过程是当松开鼠标按钮时,关闭拖拉开关,停止拖拉并产生DragDrop事件。
  SubPicture1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  Picture1.Drag2
  EndSub

最后是DragDrop事件
  SubForm_DragDrop(SourceAsInteger,XAsSingle,YAsSingle)
  Source.Move(X-Source.Width/2),(Y-Source.Height/2)
  EndSub
  该程序在VB5.0中文版下运行通过。

->

精彩图集

赞助商链接