HScroll问题

zqymike 2003-10-01 09:51:30
如何知道鼠标在上HScroll控件按下?
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodname008 2003-10-01
  • 打赏
  • 举报
回复
' 那就用子类处理拦截消息好了.


' 窗体代码
Option Explicit

Private Sub Form_Load()
ret = SetWindowLong(HScroll1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

' 标准模块
Option Explicit
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC = (-4)
Private Const WM_MOUSEMOVE = &H200
Public ret As Long

' SetWindowLong 的回调函数, 利用 Msg 拦截消息
Function WindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

If Msg = WM_MOUSEMOVE Then Debug.Print "MouseMove"

WindowProc = CallWindowProc(ret, hwnd, Msg, wParam, lParam)
End Function
zqymike 2003-10-01
  • 打赏
  • 举报
回复
这样没用

最好是捕捉HScroll的MouseMove事件
goodname008 2003-10-01
  • 打赏
  • 举报
回复
' 是这个意思吗?

Option Explicit

Private Sub VScroll1_Change()
MsgBox "按下了"
End Sub

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧