クライアント領域をスクロール <TOP>
例では、コマンドボタンをクリックするたびにスクロール(移動)させています。
ScrollWindowEx 指定したウィンドウのクライアント領域の内容をスクロール
SW_ERASE(&H4)
ウィンドウを隠す
SW_INVALIDATE(&H2)
スクロール後に無効化
SW_SCROLLCHILDREN(&H1)
すべての子ウィンドウをスクロール
'================================================================ '= クライアント領域をスクロール
'= (ScrollWindowEx.bas) '================================================================ #include "Windows.bi" Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type ' 指定したウィンドウのクライアント領域の内容をスクロール Declare Function Api_ScrollWindowEx& Lib "user32" Alias "ScrollWindowEx" (ByVal hWnd&, ByVal dx&, ByVal dy&, prcScroll As RECT, prcClip As RECT, ByVal hrgnUpdate&, prcUpdate As RECT, ByVal Flags&) #define SW_ERASE &H4 'ウィンドウを隠す #define SW_INVALIDATE &H2 'スクロール後に無効化 #define SW_SCROLLCHILDREN &H1 'すべての子ウィンドウをスクロール Var Shared Button1 As Object Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var Scrl As RECT Var Clip As RECT Var hUpdate As Long Var pUpdate As RECT Var Ret As Long Scrl.Top = 0 Scrl.Left = 0 Scrl.Right = GetWidth - Button1.GetWidth Scrl.Bottom = GetHeight - Button1.GetHeight 'クリック毎にx=20、y=10ずつスクロール Ret = Api_ScrollWindowEx(GethWnd, 20, 10, Scrl, Clip, hUpdate, pUpdate, SW_SCROLLCHILDREN) Refresh SetFocus End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End