Hi thank you for your reply, i have got further along but it is still not quite right :(
I will look at the URL you sent me see if i can work it out.
Regards
Kev
Code:
Public Class MouseWheelMessageFilter
Implements IMessageFilter
Private Sub New(ByVal element As FrameworkElement)
Me._element = element
AddHandler Me._element.Loaded, (sender, args) >= Application.AddMessageFilter(Me)
AddHandler Me._element.Unloaded, (sender, args) >= Application.RemoveMessageFilter(Me)
End Sub
Public Function PreFilterMessage(ByRef m As Message) As Boolean
Dim flag2 As Boolean
If Me._element.IsVisible Then
If (m.Msg = &H20A) Then
Dim rect As New Rect(0, 0, Me._element.ActualWidth, Me._element.ActualHeight)
If rect.Contains(Mouse.GetPosition(Me._element)) Then
MouseWheelMessageFilter.SendMessage(DirectCast(PresentationSource.FromVisual(Me._element), HwndSource).Handle, m.Msg, m.WParam, m.LParam)
Return True
End If
End If
flag2 = False
Else
flag2 = False
End If
Return flag2
End Function
Public Shared Sub RegisterMouseWheelHandling(ByVal element As FrameworkElement)
Dim filter As New MouseWheelMessageFilter(element)
End Sub
<DllImport("user32.dll")>
Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer
End Function
' Fields
Private Const WM_MOUSEWHEEL As Integer = &H20A
Private _element As FrameworkElement
End ClassI will look at the URL you sent me see if i can work it out.
Regards
Kev
Kevan Hampson

