Počet viditelných položek v ListBoxu

Postup:
Deklarujte v deklarační části formuláře:

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 

Private Const LB_GETITEMHEIGHT = &H1A1 

Private Type RECT 
   Left As Long 
   Top As Long 
   Right As Long 
   Bottom As Long 
End Type

Funkce pro zjištění počtu viditelných položek:

Private 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

Zpět

Autor: The Bozena