DOBON.NET DOBON.NETプログラミング掲示板過去ログ

スクロールバーの移動量などを検出するには

環境/言語:[WindowsXP Pro2 VisualStudio2003(Visual Basic.net) NetFramwork1.1]
分類:[.NET]

どぼんさんには、いつもお世話になっております。

コントロールにAutoScroll=trueでスクロールをつけた場合ですが、
このスクロールイベントは、VBでは捕捉できますが、.netでは捕捉できなくなっています。(間違いがありましたら、ご指摘ください。)
しかしながら、スクロール後のコントロール表示位置の補正を行う必要が生じ、現在、以下のロジックでスクロールイベントを捕捉しています。

コントロール内にて
Public Class コントロール
Inherits System.Windows.Forms.UserControl



Protected Overrides Sub WndProc(ByRef msg As Message)
Const WM_VSCROLL As Integer = &H115I
If msg.Msg = WM_VSCROLL Then
_HookMouseScroll(msg)
End If
MyBase.WndProc(msg)
End Sub
Private Sub _HookMouseScroll(ByRef inMsg As Message)
    Dim wObj as ???????
wObj = CType(inMsg.GetLParam(wObj.GetType), ???????)
End Sub
End Class

この後ですが、
(1)スクロール量をこのイベントで知ることはできるでしょうか。
(2)その場合の上記 ???????の構造体をご存知でしょうか。
  ちなみに 当初は、MouseHookイベントと同じかと思ってましたが、どうもそうではなさそうです。

博識の皆様、いつもご迷惑をおかけしますが、何卒よろしくお願いします。
後は、MouseDown MouseMoveイベントを拾うしかない。。。。
すいません。自己解決です。
AutoScrollPositionを使用すれば、簡単に解決することがわかりました。

Private Sub _HookMouseScroll(ByRef inMsg As Message)
Dim wPosition As Point = Me.AutoScrollPosition
Debug.WriteLine("pos=" & wPosition.ToString)
End Sub

掲示板汚してすいません;;
今後ともよろしくお願いします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板