ScrollPos




Option Explicit
'

Private Const SB_CTL = 2
Private Const SB_HORZ = 0
Private Const SB_VERT = 1
'

Private Declare Function GetScrollInfo Lib "user32" (ByVal hWnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long
'

Private Type SCROLLINFO
cbSize As Long
fMask As Long
nMin As Long
nMax As Long
nPage As Long
nPos As Long
nTrackPos As Long
End Type
'

Private Const SIF_RANGE As Long = &H1
Private Const SIF_PAGE As Long = &H2
Private Const SIF_POS As Long = &H4
Private Const SIF_DISABLENOSCROLL As Long = &H8
Private Const SIF_TRACKPOS As Long = &H10
Private Const SIF_ALL As Long = (SIF_RANGE Or SIF_PAGE Or SIF_POS Or SIF_TRACKPOS)
'

Public Enum eScrollBar
sbHorizontal = 0
sbVertical = 1
End Enum
'_________________________________________________________

Public Function GetScrollBarPos(ByVal lHwnd As Long, ByVal ScrollBar As eScrollBar) As Long
Dim lFlag As Long
Dim sbInfo As SCROLLINFO
Dim lRet As Long
'

sbInfo.cbSize = Len(sbInfo)
sbInfo.fMask = SIF_POS
lFlag = ScrollBar
'

lRet = GetScrollInfo(lHwnd, lFlag, sbInfo)
'

If lRet > 0 Then ' ok
GetScrollBarPos = sbInfo.nPos
End If
End Function











( scrollpos.html )- by Paolo Puglisi - Modifica del 17/12/2023