リストボックスに横スクロールバーをつける
標準ではリストボックスには横スクロールバーがつきませんよネ。 これってけっこう不便ですよネ。 SendMessage() API で横スクロールバーをつけるサンプルを紹介します。 サンプルは以下のとおりです。 *---------*---------*---------*---------*---------*---------*---------*---------* フォームにリストボックスをひとつ配置し(オブジェクト:List1)以下のコードを フォームモジュールに貼り付けて実行してみてください。 Option Explicit Private 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 Private Const LB_SETHORIZONTALEXTENT = &H194 Private Sub Form_Load() Dim cx& List1.AddItem String$(20, "A") List1.AddItem String$(20, "B") List1.AddItem String$(20, "C") List1.AddItem String$(20, "D") List1.AddItem String$(20, "E") List1.AddItem String$(20, "F") cx = Me.TextWidth(String$(30, "A")) \ Screen.TwipsPerPixelX SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, cx, 0 End Sub サンプルでは文字 "A" が 30個入るくらいの幅にしています。 |
動作確認
Windows98 Second Edition + Visual Basic 6 (+SP4)このサンプルを使用しての感想や、質問は 掲示板や、 らくがき帳に書きとめて頂けるとうれしいです。