vb中拖动窗体或控件
现在的许多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.保存并运行程序,按下鼠标,你会发现窗体会随着鼠标的移动而移动。就和其它著名的应用程序一样。
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载