リストボックスに横スクロールバーをつける




標準ではリストボックスには横スクロールバーがつきませんよネ。
これってけっこう不便ですよネ。
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)


このサンプルを使用しての感想や、質問は 掲示板や、 らくがき帳に書きとめて頂けるとうれしいです。


戻る


インデックスに戻る


G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMIT1~] COiq COsI