win7 vb 鼠标滚轮
番茄系统家园 · 2021-08-16 18:21:02

让VB的应用程序,让VB的控件支持鼠标滚轮
本身,以及VB做出来的程序都不支持鼠标滚轮,以前鼠标一般是两键,但现在基本上是三键鼠标,即有一个中键,有滚轮,如果应用程序不支持鼠标滚轮,这在用户的体验上就没有那么好了,操作上也不方便,还好有高手做了相应的代码解决此事,只要新建一个标准模块(.bas),然后在窗体上加两个事件代码就行了。
标准模块代码如下:
=(-4)
=H111
=H207
=H208
=H20A
""Alias"SetWindowLongA"(ByValhWndAsLong,_
ByValnIndexAsLong,ByValdwNewLongAsLong)AsLong
PublicDeclareFunctionCallWindowProcLib"user32"Alias"CallWindowProcA"(ByVallpPrevWndFuncAsLong,_
ByValhWndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLong
PublicDeclareFunctionGetWindowLongLib"user32"Alias"GetWindowLongA"(ByValhWndAsLong,_
ByValnIndexAsLong)AsLong
PublicFunctionFlexScroll(ByValhWndAsLong,ByValwMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLong
'支持滚轮的滚动Yu2004-5-1015:33
SelectCasewMsg
CaseWM_MOUSEWHEEL
SelectCasewParam
Case-7864320'鼠标滚轮向下滚动
SendKeys"{PGDN}"
Case7864320'鼠标滚轮向上滚动
SendKeys"{PGUP}"
EndSelect
EndSelect
FlexScroll=CallWindowProc(Oldwinproc,hWnd,wMsg,wParam,lParam)
EndFunction
在窗体模块上的代码如下:
PrivateSubMfgMonth_GotFocus()
Oldwinproc=GetWindowLong(Me.hWnd,GWL_WNDPROCwin7 vb 鼠标滚轮)
SetWindowLongMe.hWnd,GWL_WNDPROC,AddressOfFlexScroll
EndSub
PrivateSubMfgMonth_LostFocus()
SetWindowLongMe.hWnd,GWL_WNDPROC,Oldwinproc
EndSub
--------------------------
你可以试验一下,在窗体上建一个文件框控件,文件框的MultiLine的属性设置为True,ScrollBars属性设置为2,启动后,你往文本框中输入或复制粘贴足够多的字符,当文本框的滚动条出现时,你可以试试鼠标的滚轮,滚轮肯定可以使用了。
来源:济亨网
本文链接:http://www.wb98.com/post/166.html

