鼠标事件和OLE拖放.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
或在程序中采用Drag方法结束拖拉并投放控件时,便在目标控件上引发DragDrop事件。在这两种事件引发的同时,系统自动将源对象作为Source参数传给事件过程,可通过程序设计对源对象进行一些操作和判别,同时鼠标指针的位置及拖放过程的状态,也作为参数传给事件过程,供程序识别和使用。State参数表示源对象在目标对象范围内拖动的情况,它有三个值:0、1和2,分别表示进入、离去和跨越一个目标对象。 一般在目标对象的DragDrop事件过程中,对源对象调用Move方法,使源对象经拖放操作真正发生位移,在新的位置上重新定位。这样拖放操作使源对象随鼠标指针的移动而真正发生了位移,并投放在释放鼠标的位置上。 【例12-5】 假设窗体上有图形框picIcon,装有某个图形,它能作为源对象被以自动方式拖放到该窗体的某个地方。另外,还有一个标题为“取消拖放”,名称为lblCancel的标签,当图形被拖到该标签上时取消拖放操作。 在设计状态把picIcon.DragMode设置为1,编写如下的事件过程: 鼠标在表单上拖放的事件响应 Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Source.Move (X - Source.Width / 2), (Y - Source.Height / 2) End Sub “取消”标签上鼠标移过的事件响应 Private Sub lblCancel_DragOver(Source As Control, X As Single, Y As Single, State As Integer) Source.Drag 0 End Sub Form_Draprop过程使控件picIcon被拖放到窗体的指定位置,且图形框的中央落在鼠标指针位置,拖放过程如图12.5所示: 图12.5 对象拖放示例 【例12-6】 设计一个应用程序。用户能够从文件列表框中选择一个图标文件(.ico、.bmp或 .wmf,然后把它拖放到图形框中,如果选择了其它文件,则显示“不能装入图标!”信息。拖动时以该图标作为指针显示。界面对象属性设置如表12.10所示。 控件属性设置中,标签lblDrag是作为被拖放文件名的替身来使用的,程序运行期间不可见。 在窗体层对变量strFinalname进行说明:Dim strFinalname As String,它存放用户所选择的图标文件的路径和文件名。 表12.10 文件显示拖动操作设置 窗体上的命令按钮用于退出,驱动器列表框、目录列表框和文件列表框需要联合动作。 在下面的filFile_MouseDown事件中,若按下鼠标时,选择的是一个图标文件,则把该图标作为lblDrag标签的DragIcon属性值,以便拖动时能看到被拖动的是一个什么图标,并且把lblDrag标签移动到鼠标指针下面,开始拖动标签。这里要说明的是,被拖动的实际上并不是一个文件名,只有控件可被拖动,控件内部的元素是不能单独被拖动的,这里使用了一个标签作为文件名的替身。如果选择的不是图标文件,则将显示“不能装入图标!”信息。显示结果如图12.6所示。 图12.6 图片文件的拖放示例 文件上当鼠标落下时引发的事件响应如下: Private Sub filFile_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) On Error Resume Next 当发生错误时,忽略错误行,继续执行下一语句 If Right(filFile.Path, 1) = \ Then strFinalname = filFile.Path + filFile.FileName Else strFinalname = FilFile.Path + \ + filFile.FileName End If lblDrag.DragIcon = LoadPicture(strFinalname) lblDrag.Move FilFile.Left + X - lblDrag.Width / 2, filFile.Top + Y - lblDrag.Height / 2 lblDrag.Drag If Err Then MsgBox “不能装入图标!

文档评论(0)

野草 + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档