VB中控件拖放操作的教学研究

上传人:cc****pp 文档编号:209921003 上传时间:2021-11-12 格式:DOC 页数:5 大小:70KB
返回 下载 相关 举报
VB中控件拖放操作的教学研究_第1页
第1页 / 共5页
VB中控件拖放操作的教学研究_第2页
第2页 / 共5页
VB中控件拖放操作的教学研究_第3页
第3页 / 共5页
VB中控件拖放操作的教学研究_第4页
第4页 / 共5页
VB中控件拖放操作的教学研究_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《VB中控件拖放操作的教学研究》由会员分享,可在线阅读,更多相关《VB中控件拖放操作的教学研究(5页珍藏版)》请在金锄头文库上搜索。

1、vB中控件拖放操作的教学研究在VB教学中,拖放操作是一个难点内容。木文介绍在教学过程中如何讲解 通过修改拖放坐标和使用API函数,实现在不同容器之间拖放控件的操作,并 给出了实例程序。关键词:VB;拖放;坐标;API函数在Visual Basic应用程序中,为了实现更加灵活的用户控制,吋常需耍市用 户自C安排一些控件的位置。在Windows操作系统中,经常使用拖动操作移动 或复制文件;在一些应用程序小,可将工具栏小的控件按钮拖放到文档窗口小, 实现插入对象操作;在Office软件中,述可以随意定制工具栏中的按钮。在我多年的VB 线教学实践中,发现拖放操作的讲解难点在于拖放的目标 位置设置。在拖

2、放控件时,根据源位置和FI标位置的容器控件不同分为两种情况: 在同一容器对彖小拖放控件,在不同容器对象中拖放控件。学生对于在不同容器 中拖放控件有很多疑问,因此我在教学中采用了由浅入深、循序渐进的方法,分 别讲解这两种情况的处理方法,并通过典型的实例让学牛掌握拖放操作的相关概 念和实现方法,收到了不错的效果,学生感觉比较容易理解,下面具体介绍一下 这两种情况拖放操作的实现方法。I在同一容器内部拖放控件在教学过程中,我首先讲解拖放操作的相关概念,然后举例介绍与拖放操作 相关的属性、方法和事件。拖放(Drag)操作是指在窗体中,将鼠标指针指向控 件,按住鼠标按键移动鼠标,到达冃标位置后松开鼠标按键

3、,被拖放的控件移动 到目标位置。在同一容器中拖放控件比较容易实现,可以通过设置控件的拖放属性,或调 用控件的Drag方法来实现。在教学过程中以命令按钮(CommandButton)控件 为例,在窗体上添加一个命令按钮Command 1,设置DragMode属性为1-Automatic (自动拖放),运行程序后用鼠标左键拖动命令按钮,可以看到拖动时显示灰色 控件边框,但控件并不真正移动到目标位置。若设置DragMode属性为O-Manual (手动拖放),则需要编写命令按钮的MouseDown事件调用其Dmg方法,事件 过程的代码如下:Private Sub Commandl_MouseDown

4、(Button As Integer, Shift As Integer, X As Single, Y As Single)Command 1. Drag 1,开始拖动控件End Sub运行程序时演示拖放操作,让学生看到两种设置方法的效果相同,使学生了 解DragMode属性的含义和Drag方法的用法。为了真正实现控件的移动,还需要编写窗体的DragDrop事件过程,通过调 用命令按钮的Move方法使其移动到口标位置。DragDrop事件过程的代码如下:Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)

5、Source.Move X, Y马巴命令按钮移到目标位置End Sub在程序运行时可以看到,拖放命令按钮时能够将莫移动到目标位置。2在不同容器Z间拖放控件上述的方法虽然可以改变控件的位置,但是控件的源位置和目标位置都是窗 体,不能把控件从一个容器对象移到另一容器对象。为了实现控件在不同容器Z 间的拖放操作,可以通过修改坐标和修改容器对彖的方法实现。2修改拖放坐标在教学过程中,要给学生强调目标位置坐标的设置方法。还以命令按钮为例, 在窗体上添加一个图片框(PictureBox)控件Picture 1,由于窗体和图片框都是容 器对彖,可以尝试通过修改对彖的坐标,将命令按钮从窗体上拖放到图片框上。首

6、先给学生讲解DragDrop事件中参数的含义,Source表示被移动的控件对 象,X和Y表示被拖动控件的停放位置,并通过画示意图让学生了解在不同容 器Z间拖放控件时坐标的变化。DragDrop事件中的控件停放坐标X和Y是指在 本容器中的坐标,当命令按钮在窗体中移动时,坐标X和Y是和对于窗体而言 的,而当命令按钮被拖放到图片框中吋,坐标X和Y是相对于图片框而言的。 如果仍旧使用Source.Move X, Y语句,则命令按钮无法移到目标位置。因此需要 考虑命令按钮在图片框中的坐标与在窗体中的坐标Z间的关系,即需耍设置坐标 的偏移,修改拖放坐标的程序代码如下:Private Sub Picture

7、 1 _DragDrop(Source As Control, X As Single, Y As Single)计算得到控件在图片框中的停放坐标Source.Move X + Picture 1.Left, Y + Picture 1 .TopEnd Sub运行此程序可以看到,拖放命令按钮能够将控件从窗体上移动到图片框上。2.2修改容器对象上述程序仍冇一些弊端,就是当图片框位于命令按钮下层时,可以将命令按 钮移动到图片框上,但当图片框的叠放次序位于命令按钮上层时,移动命令按钮 到图片框吋,命令按钮会被图片框覆盖。也就是说,修改拖放坐标的方法可以把 命令按钮移动到图片框之上,却无法将命令按钮移

8、动到图片框之中。为了实现将 控件拖放到不同容器对象中的功能,需要修改控件的容器对象。在VB的开发环境中,没有提供在程序运行时建立窗口及控件之间嫡属关系 的方法和手段,因此要实现上面要求的功能,需要补充一点动态建立窗口及控件 之间嫡属关系的能力。解决这个问题的方法是借助Windows系统调用,即使用 API函数。API (应用程序接口)是操作系统自带的一套功能强大的函数集,Windows API直接面对操作系统底层,可以实现VB所不能实现的功能。Visual Basic 6.0 支持约1500个API函数,主要包括在3个DLL中,其中User32.dll中的函数主 要用于窗口管理,SetPare

9、nt函数就是其中一个函数。由于API函数不属于教学大纲的要求,因此在教学过程中可以简要介绍API 函数的相关知识,只需举例讲解SetParent函数的含义和用法。SetParent函数可以用來在程序运行时刻,动态建立两个容器对象及控件Z间 的嫡屈关系。SetParent函数接收两个参数,第一个参数是子对彖的句柄,第二个 参数是父对彖的句柄,若两个参数都是合法的句柄,则函数调用成功,为两者之 间建立起嫡属关系3。在木例中,当将命令按钮从窗体拖放到图片框时,父对象是图片框;当从图 片框拖放到窗体时,父对象是窗体。因此需耍根据鼠标拖放时的方向设置不同的 父对彖,在DragOver事件中,可用If语句

10、来判断鼠标拖放的方向。另外,需要 给学生强调在使用SetParent函数吋,需要先声明再使用,如果只在窗体模块中 使用,就在窗体代码的通用部分声明。相应的程序代码如下:Private Declare Function SetParent Lib “User32 (ByVai hWndChild As Long, _使用前声明API函数By Vai hWndNewParent As Long) As LongSetParentPrivate Sub Command 1 _MouseDown(Button As Integer, Shift As Integer, X As Single, Y A

11、s Single)If Button = 1 Then Command 1.Drag 1:如果按卜的是左键则开始拖放End SubPrivate Sub Form_DragDrop(Source As Control, X As Single, Y As Single)Source.Move X, YEnd SubPrivate Sub Picture l_DragDrop(Source As Control, X As Single, Y As Single)Source.Move X,YEnd SubPrivate Sub Picture 1 _DragOver(Source As Con

12、trol, X As Single, Y As Single, State As Integer)当进入图片框时把图片框设置为容器对象If State = 0 Then SetParent Command 1 .hWnd, Picturel.hWnd,当进入窗体吋把窗体设置为容器对象If State = 1 Then SetParent Command 1 .hWnd, Forml.hWndEnd Sub上面的程序能够实现在同一个窗体中的不同容器对象之间拖放控件。若对程 序再做改进,还可以实现在不同窗体Z间拖放控件。3结束语木文介绍了 VB教学过程中鼠标拖放操作的有关问题,通过实例探讨了拖放 操作由简单到复杂的实现过程,达到了理想的教学效果,学生能够更深刻地理解 拖放操作的本质,更容易掌握拖放操作的实现方法。本文中的程序经过反复调试, 仅用来验证拖放操作,并不是完整的应用程序,在开发实际应用程序时,还需要 扩展程序功能,可将此作为大作业留给学生们课余吋间完成。参考文献1 申石磊,张东生.Visual Basic程序设北京:中国科学技术出版 社,2007:237-241.2 求是科Visual Basic 6.0程序设计与开发技术大全M.北京:人民邮电 出版社,2005:212-216.3 张智群.在VB应用程序中实现动态控件移动J.计算机世界 报,1997,(18).

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号