?? 194.txt
字號:
在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函數可以實現許多你意想不到的功能。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -