成都网站建设设计

将想法与焦点和您一起共享

vb.net鼠标滚轮 vb6鼠标滚轮

VB怎么实现滚动条对鼠标中轴的响应啊?

VB可以使用子类化处理鼠标滚轮消息。

创新互联专注于网站建设,为客户提供做网站、成都网站建设、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,品牌网站制作,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。

新建工程

在窗体中添加滚动条VScroll1

'窗体代码

Private Sub Form_Load()

'取得控件的句柄

hwndVS = VScroll1.hwnd

'保存smMap控件的默认窗口消息处理函数地址

OldWindowProc = GetWindowLong(VScroll1.hwnd, GWL_WNDPROC)

'将smMap控件的消息处理函数指定为自定义函数NewWindowProc

Call SetWindowLong(VScroll1.hwnd, GWL_WNDPROC, AddressOf NewWindowProc)

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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex 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

Public Const WM_MOUSEWHEEL = H20A

Public OldWindowProc As Long '用来保存系统默认的窗口消息处理函数的地址

Public hwndVS As Long '用来保存控件的句柄

'自定义的消息处理函数

Public Function NewWindowProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

On Error Resume Next

If msg = WM_MOUSEWHEEL Then

'则对鼠标滚轮事件进行处理

If wParam = -7864320 Then '向下滚动

Form1.VScroll1.Value = Form1.VScroll1.Value + 1

ElseIf wParam = 7864320 Then '向上滚动

Form1.VScroll1.Value = Form1.VScroll1.Value - 1

End If

Else

'调用默认窗口消息处理函数

NewWindowProc = CallWindowProc(OldWindowProc, hwnd, msg, wParam, lParam)

End If

End Function

vb.net当鼠标移到边界时滚动条

将RTF的Padding设置比较大,例如10,此时我发现鼠标移动到RTF的边缘部分的时候(不超过Padding的范围),滚动条就能够显示,一旦鼠标移动到Content里面的时候,滚动条就不显示

1、滚动条分为水平滚动条(HSCROLLBAR)和垂直滚动条(VSCROLLBAR)两种,可以作为输入设备或者速度、数量的指示器来使用.

2、基本属性:object.max[=value],object.min[=value],最大最小范围 object.value[=value],

vb.net panel的vscroll的滑轮事件

点击panel时得到panel的焦点,就可以用鼠标滚轮来控制滚动条了!代码如下:

Private Sub Panel1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1.Click

Panel1.Focus()

End Sub

vb.net 鼠标滚轮问题

根据我的经验,应该是PICtureBox没有获取焦点,而win10下不知道什么原因能自动获取焦点,所以凑巧成功了,因此你应该让图形框获取焦点

如:picturebox1.focus()

不知道是不是解决了你的问题


当前文章:vb.net鼠标滚轮 vb6鼠标滚轮
分享路径:http://chengdu.cdxwcx.cn/article/docsgdg.html