Mar 14, 2014

スクロールさせたいだけなのに、いちいち座標の計算みたいなことをするのは面倒だ。こういった場合はメッセージを飛ばした方が楽。

    Declare Auto Function SendMessage Lib "User32" _
        (ByVal hWnd As IntPtr,
         ByVal uMsg As UInt32,
         ByVal wParam As Int32,
         ByVal lParam As Int32) As Int32

    Const WM_VSCROLL As UInt32 = &H115      ' 縦スクロール
    Const WM_HSCROLL As UInt32 = &H114      ' 横スクロール

    Const SB_LINEUP As UInt32 = 0           ' ↑
    Const SB_LINEDOWN As UInt32 = 1         ' ↓
    Const SB_PAGEUP As UInt32 = 2           ' PageUp
    Const SB_PAGEDOWN As UInt32 = 3         ' PageDown
    Const SB_THUMBPOSITION As UInt32 = 4    ' 絶対位置
    Const SB_THUMTRACK As UInt32 = 5        ' ドラッグ
    Const SB_TOP As UInt32 = 6              ' HOME
    Const SB_BOTTMOM As UInt32 = 7          ' END
    Const SB_ENDSCROLL As UInt32 = 8        ' スクロール終了

    ' 例:ハンドルを指定して縦スクロールの PageUp を飛ばす
    SendMessage(***.Handle, WM_VSCROLL, SB_PAGEUP, 0)
SendMessage
Categories: , ,

0 Comments :

Post a Comment