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

定制建站费用3500元

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

成都品牌网站建设

品牌网站建设费用6000元

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

成都商城网站建设

商城网站建设费用8000元

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

成都微信网站建设

手机微信网站建站3000元

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

建站知识

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

关于vb.net鼠标滚轮事件的信息

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

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

创新互联公司长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为枝江企业提供专业的成都做网站、网站建设,枝江网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

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

几个API就可以搞定

VB.NET picturebox 内绘图完图形放大缩小移动 鼠标控制 。比较笨看了VB的代码不明白 求解

。net 不用api就行

缩放操作

Function 缩放(ByVal bitmap As Bitmap, ByVal 倍数 As Single) As Bitmap

Dim w As Integer = bitmap.Width * 倍数

Dim h As Integer = bitmap.Height * 倍数

Dim tem As New Bitmap(w, h)

Dim g As Graphics = Graphics.FromImage(tem)

g.DrawImage(bitmap, New Rectangle(0, 0, w, h), New Rectangle(0, 0, bitmap.Width, bitmap.Height), GraphicsUnit.Pixel)

g.Dispose()

Return tem

End Function

鼠标滚轮事件 MouseWheel

MouseEventArgs.Delta 值可以判断滚动方向

vb.net 鼠标滚轮问题

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

如:picturebox1.focus()

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

VB 鼠标滚轮事件在哪?

在VB中,并没有包含鼠标滚轮的滚动事件,所以必须用API自己捕获滚动信息并加以处理。主要需要用到CallWindowProc和SetWindowLong两个函数,请参考以下代码:

’在模块中

‘声明方法

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

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

Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long ‘写自己处理鼠标滚动的事件,这里让Form上下滚动

Dim t(0 To 1) As Integer

If uMsg = WM_MOUSEWHEEL Then

If wParam 0 Then 'backward

Form1.Top = Form1.Top + 10

Else 'forforward

Form1.Top = Form1.Top - 10

End If

Else

WndProc = CallWindowProc(PrevWndProc, hwnd, uMsg, wParam, lParam) ‘让Windows处理其他事件

End If

End Function

然后在Form中写入:

Option Explicit

Private Sub Form_Load()

PrevWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WndProc) ‘让WndProc来处理该窗体的事件

End Sub

Private Sub Form_Unload(Cancel As Integer)

Dim lResult As Long

lResult = SetWindowLong(Me.hwnd, GWL_WNDPROC, PrevWndProc) ‘让Windows默认的函数来处理事件

End Sub

关于CallWindowProc和SetWindowLong您可以参考以下文章:

SetWindowLong

CallWindowProc


本文标题:关于vb.net鼠标滚轮事件的信息
标题来源:http://bjjierui.cn/article/doicsoj.html

其他资讯