リストボックスでWIDTHのサイズより
長い文字列を最後まで見れるようにしたいのですが
水平スクロールバーを使ってどのようにすればよいでしょうか?
VB.NETの場合は、HorizontalScrollbarプロパティをTrueにすればOKです。
VB6の場合は、その機能が用意されていないので、APIに頼る必要があります。
(LB_SETHORIZONTALEXTENTメッセージに付いて調べてみてください)
水平スクロールバーという手もありますけど、
ツールチップやステータスバーを利用するという手もありますよ。
場所にも夜かもしれませんけど、水平バーは動かしにくいですからね。キーボードの十字ボタンじゃ動かないし、ホイールでもできないから。
APIというのがさっぱりわからないのでもう少し勉強してみます。
ありがとうございました。
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
Private Sub Form_Load()
Dim lngWidth As Long
Dim i As Integer
List1.AddItem text1.Text
For i = 0 To List1.ListCount - 1
If lngWidth < TextWidth(List1.List(i) & " ") Then
lngWidth = TextWidth(List1.List(i) & " ")
End If
Next
If ScaleMode = vbTwips Then
lngWidth = lngWidth / Screen.TwipsPerPixelX
End If
Call SendMessageByNum(List1.hwnd, LB_SETHORIZONTALEXTENT,lngWidth, 0)
End Sub
こんなかんじで何とかできました。
ありがとうございました。