网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

vb.net滚轮消息 vb文字滚动代码

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

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

成都创新互联公司是专业的古交网站建设公司,古交接单;提供成都做网站、成都网站设计、成都外贸网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行古交网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

新建工程

在窗体中添加滚动条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 鼠标滚轮问题

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

如:picturebox1.focus()

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

vb.net 禁用第三方 控件滚轮事件

拦截窗口程序消息可以解决

参考 VB王国荣API讲座 讲消息的那章

几个API就可以搞定

VB的滚轮事件

vb 中, 好象处理滚轮是比较痛苦的, 我以前是这样做的, 用api将你要处理滚轮的对象的句柄(也就是消息的处理过程)转到你自定义的过程中,判断用户是否按了滚轮,如果没有,就继续用这个控件的消息处理过程。

做起来比较复杂,如果你是初学者,估计是很痛苦的了。推荐你使用vb.net ,vb.net中处理各种消息容易得多,而且也很容易用自己的过程去代替系统的各种消息处理过程,也安全,不容易出错。


本文标题:vb.net滚轮消息 vb文字滚动代码
网址分享:http://bjjierui.cn/article/dohijep.html

其他资讯