Visual Basic Tips


リストボックス・横スクロールバーを表示(API)


リストボックスに格納されている文字列の長さに合わせて横スクロールバーを表示します。



'-------------------------------------------------------
'
'-------------------------------------------------------
Private Sub Form_Load()
  
Dim lngWidth As Long
  
Dim i As Integer

  List1.AddItem "123"
  List1.AddItem "123456"
  List1.AddItem "1234567890"
  List1.AddItem "1234567890123"
  List1.AddItem "1234567890123456"
  List1.AddItem "12345678901234567890"
  List1.AddItem "12345678901234567890123"
  List1.AddItem "12345678901234567890123456"
  List1.AddItem "123456789012345678901234567890"

  
'最大の文字幅を検索します。
  
For i = 0 To List1.ListCount - 1
    
If lngWidth < TextWidth(List1.List(i) & " ") Then
      lngWidth = TextWidth(List1.List(i) & " ")
    
End If
  
Next

  
'Twip値の場合Pixelに変換します。
  
If ScaleMode = vbTwips Then
    lngWidth = lngWidth / Screen.TwipsPerPixelX
  
End If

  
Call SendMessageByNum(List1.hwnd, LB_SETHORIZONTALEXTENT, lngWidth, 0)
End Sub

'-------------------------------------------------------
' Module
'-------------------------------------------------------
Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Const LB_SETHORIZONTALEXTENT = &H194


DownLoad vbtips102.lzh 2KB (VB6.0)


[Top] [Visual Basic Tips Top]