guest_rusimport
Дата: 29.12.2011 20:03:35
Всем спасибо! Само разрешилось
Option Compare Database
Option Explicit
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 Declare Function GetFocus Lib "user32" () As Long
Private Declare Function GetScrollInfo Lib "user32" _
(ByVal hwnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long
Private Const SB_HORZ = 0
Private Const SB_VERT = 1
Private Const SIF_RANGE = &H1
Private Const SIF_PAGE = &H2
Private Const SIF_POS = &H4
Private Const SIF_DISABLENOSCROLL = &H8
Private Const SIF_TRACKPOS = &H10
Private Const SIF_ALL = _
(SIF_RANGE Or SIF_PAGE Or SIF_POS Or SIF_TRACKPOS)
'---------------------------------------------------------------------------------------
' Purpose : Индекс первого видимого элемента в ListBox
'---------------------------------------------------------------------------------------
Public Property Get LeftColumnVisible(lst As ListBox)
Dim si As SCROLLINFO
With si
.cbSize = Len(si)
.fMask = SIF_POS
If GetScrollInfo(GetCtrlhWnd(lst), SB_VERT, si) <> 0 Then
LeftColumnVisible = .nPos
Else
LeftColumnVisible = 0
End If
End With
End Property
'---------------------------------------------------------------------------------------
' Purpose : Элементы Access не имеют свойства hWnd.
' Для пролучения hWnd элемента используем функцию GetFocus API.
'---------------------------------------------------------------------------------------
Private Function GetCtrlhWnd(ctrl As Control) As Long
'Set the focus to the control
ctrl.SetFocus
'Get the hwnd from the API
GetCtrlhWnd = GetFocus
End Function