Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _ hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, _ lpRect As RECT) As Long Const LB_GETITEMHEIGHT = &H1A1
Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type
Function ListBoxVisibleItems(lb As ListBox) As Long Dim lpRect As RECT, itemHeight As Long
GetClientRect lb.hwnd, lpRect
itemHeight = SendMessage(lb.hwnd, LB_GETITEMHEIGHT, 0, ByVal 0&)
ListBoxVisibleItems = (lpRect.Bottom - lpRect.Top) \ itemHeight End Function |