说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在Visual Basic中如何拖动窗体或控件

HTML文档下载 WORD文档下载 PDF文档下载
在Visual Basic中如何拖动窗体或控件


现在的许多Windows下的应用程序,都采用了图形化的界面,例如:WINAMP等!
这样做的好处是可以使程序界面更漂亮生动,更具吸引力。但是在这样的界面下就
不能使用Windows原来的标题条了,否则会影响界面的美观性。那么在没有标题条
的情况下如何用鼠标拖动窗体呢?或者拖动其它的控件呢?
其实,采用API函数调用很容易实现,下面我们以拖动窗体(Form1)为例来具体
讲一下实现方法:
1.新建立一个项目,名称为:test.vbp.
2. 填加一个模块,名称为:test.bas,并且在声明部分加入以下代码:
Declare Function ReleaseCapture Lib "user32" () As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (
ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Public Const WM_SYSCOMMAND = &H112
Public Const SC_MOVE = &HF012
其中ReleaseCapture函数是用来释放鼠标捕获的,SendMessage函数是一个在
WindowsAPI中非常重要的函数,在这里的作用是用来向Windows发送移动窗体的消
息。WM_SYSCOMMAND是向Windows发送消息的常量。SC_MOVE是控制移动窗体的常量。
请注意:这里SC_MOVE的赋值一定要是&HF012,它表示鼠标对象。
3.在窗体的MouseDown过程中加入以下代码:
ReleaseCapture
SendMessage Form1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0
其中ReleaseCapture函数用来释放鼠标捕获,SendMessage函数向Windows发送
移动窗体的消息。
4.保存并运行程序,按下鼠标,你会发现窗体会随着鼠标的移动而移动。就和
其它著名的应用程序一样。
以上讲述了如何在VB中用鼠标拖动窗体,其实,控件的拖动的原理是一样的。
例如以下代码可以实现图片框的拖动:
ReleaseCapture
SendMessage Picture1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0
其实,运用API函数可以实现许多你意想不到的功能。

功能强大的增强列表框 ――VB6控件LISTVIEW使用指南 关闭MDI窗体中所有的子窗体-VB资料 规范设计Windows应用软件菜单-VB资料 VB建立可滚动的视区 -VB资料 VB建立可下拉选择的属性 -VB资料 100分给能解决tomcat5里htm文件中文乱码的 b/s下如何显示视图的一个分类?急!分不够再加! 启动界面的一个小问题 求G.722.2 float源代码 请进来讨论。。(tcp\ip) vfp 8.0 为什么装不上? 靠~~我的VC又开始无聊了~~ DBGRIDEH的焦点转移问题。 用c库函数怎样创建一个新文件夹呢?怎样获得一个指定文件夹是否存在的信息?谢谢指教! I Wanna Love You Forever I wanna love you歌词中文意思谁有这 英语翻译Jessica Simpson - I w 如何统筹人与自然和谐发展? 什么是人与自然和谐发展麻烦告诉我 好恨自己爱上你 的英文翻译 简述如何统筹人与自然和谐发展 想下载一个英语单词发音器,就是我只要输入一个英语单 怎么看英语单词就会发音 美媒:美国公布核弹更新计划 强化核威日本原子弹爆炸外籍幸存者要求安倍\"中方将与各方一道加大打击“三股势力”港媒:中央楼市思路初显 透露多点政策日本麦当劳就“禁流浪汉入店”道歉昆仑银行总行金融市场部16年招聘启事三国名将与陆口(2) ——鲁肃:屯陆神之浩劫新地图宣传片曝出 孙悟空大战苍井空柳岩范爷张柏芝 女星新年第一秀信阳市工会观摩团莅临羚锐制药参观调研那小子真帅酷帅宝宝:卯上财阀总裁狼人陈玄风憨凤穿越时空之旅残雪仙境之恶梦来袭黑山谷旅游苏仙岭旅游5.12汶川地震震中遗址旅游水磨羌城旅游姜维城旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘