99.txt

来自「VB文章集(含API、窗口、数据库、多媒体、系统、文件、等等)」· 文本 代码 · 共 22 行

TXT
22
字号
在Visual Basic中如何拖动窗体或控件 

Option Explicit

Private Declare Function ReleaseCapture Lib "user32" () As Long 
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Const WM_SYSCOMMAND = &H112
Const SC_MOVE = &HF012

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  ReleaseCapture
  SendMessage Form1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0 
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 
  ReleaseCapture
  SendMessage Picture1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0 
End Sub 


  其中ReleaseCapture函数是用来释放鼠标捕获的,SendMessage函数是一个在WindowsAPI中非常重要的函数,在这里的作用是用来向Windows发送移动窗体的消息。WM_SYSCOMMAND是向Windows发送消息的常量。SC_MOVE是控制移动窗体的常量。请注意:这里SC_MOVE的赋值一定要是&HF012,它表示鼠标对象。

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?