人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

自分では手も足も出ないのでスマートな解決方法を教えていただいた方に最低100ポイント差し上げます。
VisualBasic6.0について質問です。
VB標準のListBoxだと横に長い文字列を表示した際、右端が切れてしまいます。
そのためListBox に水平スクロールバーを表示する方法を以下のページを参考にして作りました。

http://frog.raindrop.jp/knowledge/archives/000809.html

ちゃんとうまく行き喜んでいたのですがそのListBoxは
他のコントロールのイベントにより表示する項目を動的に変えています。
そのため長い文字列を表示後に短い文字列を表示したりするのですが
その際に短い文字列にもかかわらず水平スクロールバーが出たままになってしまいます。

解決策として
1.上記のサイトでやってる記述にある「Windows SDK, API」で水平スクロールバーを消す。
2.表示項目を変える際、リストボックス自体をLoad時の状態に戻してから値をセットしなおす。
かなと思っています。
ただどちらともどうすればいいのか全くわかりません。
ご教授よろしくお願いします。



●質問者: matttsu
●カテゴリ:コンピュータ
✍キーワード:API SDK VB Windows イベント
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● yna1962
●100ポイント ベストアンサー

リストボックスのChangeイベントでフックして、リストボックスの内容が変更された時に、それぞれのリストボックスに表示されている文字列の長さを取得して、もっとも長いもの長さをSendMessageで設定すると、消えると思います。


LB_SETHORIZONTALEXTENTは、リストボックスに最大の表示幅の設定値を教えるメッセージだと思います。

◎質問者からの返答

ありがとうございます。

難しく考えすぎてたみたいです。

ロジックを毎回最大値を取得してから設定するように変えたら出来ました!

お恥ずかしいですが助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ