📄 m84.htm
字号:
<html>
<head>
<title>VB教程</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<p align="center"><script src="../../1.js"></script></a>
<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center>
<table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
<tbody>
<tr>
<td bgcolor=#000000 height=9>
<div align=center class=H1> <font color="#FFFFFF">在Visual Basic中如何拖动窗体或控件</font> </font> </font></div>
</td>
</tr>
<tr valign=top>
<td class=H1 height=76>
<p align="left"> <br>
</font> <font color="#000000">现在的许多windows下的应用程序,都采用了图形化的界面,例如:WINAMP等!这样做的好处是可以使程序界面更漂亮生动,更具吸引力。但是在这样的界面下就不能使用Windows原来的标题条了,否则会影响界面的美观性。那么在没有标题条的情况下如何用鼠标拖动窗体呢?或者拖动其它的控件呢?</font></span></p>
<p> <font face="宋体" color="#000000">其实,采用API函数调用很容易实现,下面我们以拖动窗体(Form1)为例来具体讲一下实现方法:</font></span></p>
<p> <font face="宋体" color="#000000">1.新建立一个项目,名称为:test.vbp.</font></span></p>
<p> <font face="宋体" color="#000000">2. 填加一个模块,名称为:test.bas,并且在声明部分加入以下代码:</font></span></p>
<p> <font face="宋体" color="#000000">Declare Function
ReleaseCapture Lib "user32" () As Long</font></span></p>
<p> <font face="宋体" color="#000000">Declare Function
SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal
wMsg As Long, ByVal wParam As Long, lParam As Any) As Long</font></span></p>
<p> <font face="宋体" color="#000000">Public Const
WM_SYSCOMMAND = &H112</font></span></p>
<p> <font face="宋体" color="#000000">Public Const
SC_MOVE = &HF012</font></span></p>
<p> <font face="宋体" color="#000000"> </font></span></p>
<p> <font face="宋体" color="#000000"> 其中ReleaseCapture函数是用来释放鼠标捕获的,SendMessage函数是一个在WindowsAPI中非常重要的函数,在这里的作用是用来向Windows发送移动窗体的消息。WM_SYSCOMMAND是向Windows发送消息的常量。SC_MOVE是控制移动窗体的常量。请注意:这里SC_MOVE的赋值一定要是&HF012,它表示鼠标对象。</font></span></p>
<p> <font face="宋体" color="#000000">3.在窗体的MouseDown过程中加入以下代码:</font></span></p>
<p> <font face="宋体" color="#000000">ReleaseCapture</font></span></p>
<p> <font face="宋体" color="#000000">SendMessage
Form1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0</font></span></p>
<p> <font face="宋体" color="#000000">其中ReleaseCapture函数用来释放鼠标捕获,SendMessage函数向Windows发送移动窗体的消息。</font></span></p>
<p> <font face="宋体" color="#000000">4.保存并运行程序,按下鼠标,你会发现窗体会随着鼠标的移动而移动。就和其它著名的应用程序一样。</font></span></p>
<p> <font face="宋体" color="#000000">以上讲述了如何在VB中用鼠标拖动窗体,其实,控件的拖动的原理是一样的。</font></span></p>
<p> <font face="宋体" color="#000000">例如以下代码可以实现图片框的拖动:</font></span></p>
<p> <font face="宋体" color="#000000">ReleaseCapture</font></span></p>
<p> <font face="宋体" color="#000000">SendMessage
Picture1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0</font></span></p>
<p align="left"> <br>
</table>
</div>
<p align="center"><a href="../../pian/vb.htm">回首页</a>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -