这断代码什么意思

来源:百度知道 编辑:UC知道 时间:2024/05/16 03:47:13
Const HTCAPTION = 2
Const WM_NCLBUTTONDOWN = &HA1

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 Long) As Long

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
If Button = 1 Then
Dim ReturnVal As Long
x = ReleaseCapture()
ReturnVal = SendMessage(hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
End If
End Sub
hWnd没有定义过没有赋过值为何就能用了
WM_NCLBUTTONDOWN是什麽呢?HTCAPTION?
ReleaseCapture()为何是Releasecapture()干嘛的

//hWnd没有定义过没有赋过值为何就能用了
直接写hwnd就相当于me.hwnd,是本窗体的句柄

//WM_NCLBUTTONDOWN是什麽呢?HTCAPTION?
WM_开头的常数多为系统消息类常数,这一个是表示鼠标左键被按下
htcaption表示窗体的标题栏
//ReleaseCapture()为何是Releasecapture()干嘛的
这是一个API函数,它的作用是让当前的应用程序释放对鼠标的捕获

加在一起是这样理解
先让鼠标自由,然后发一个消息给本窗体告诉它鼠标左键按在了你的标题栏上了

你平时把鼠标左键按在了一个窗体的标题栏上是要干嘛,它基本上和你的想法一样

这种应用通常是为了移动没有标题栏的窗体