
hLB=CreateWindow
("LISTBOX",NULL,WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_HSCROLL|LBS_MULTIPLESEL,0,0,400,400,hW,NULL,hI,NULL);
SendMessage(hLB,LB_SETHORIZONTALEXTENT,256,0);
i=(int)SendMessage(hLB,LB_GETHORIZONTALEXTENT ,0,0);
TextOut(hD,300,0,s,strlen(itoa(i,s,10)));
(ただしchar s[99];と宣言されている)
として200文字の文字列を200個リストボックスに格納すると
垂直スクロールバーはできるのですが水平スクロールバーができず水平方向にオーバーフローした文字を見るためのスクロールもできません。
しかしTextOutの結果は256になります。
どうすれば水平スクロールバーを出すことができ水平スクロールできるようになるのでしょうか。
No.2ベストアンサー
- 回答日時:
あれ?正しく幅を設定すればスクロールバー消えるはずですけど。
消えないように(不要なときは使用不可)するには
LBS_DISABLENOSCROLLを指定する必要があります。
なんで、長さの計算が合っていないのでは?
固定値を入力するのではなく、ちゃんとGetTextExtentPoint等を使ってデバイスコンテキストから
必要なピクセル数求めないとダメですよ。
やっぱりおおちゃくは駄目ですね。
すべての項目文字の幅のなかの最大値を求めてそれで幅を設定しなければならないのですね。
リストコントロールがやってくれたらというのは贅沢ですね。
ありがとうございました。
No.1
- 回答日時:
LB_SETHORIZONTALEXTENTは、ピクセル数を指定します。
ソースで256と指定しているので、256ピクセル分しかリストの幅はないということになるので、256ピクセルより幅が広い場合はスクロールバーは出ません。
文字数ではないところに注意してください。
参考URL:http://www.microsoft.com/japan/developer/library …
ありがとうございました。解決しました。
SendMessage(hLB,LB_SETHORIZONTALEXTENT,16384,0);
とすれば動きました。
どうも符号付き2バイト整数のようで32768以上を設定すると駄目みたいですが余り大きく設定するとスクロール範囲が広がりすぎ利用しない方がましになってしまいます。
データ数が少なく垂直スクロールする必要が無いときには自動的に垂直スクロールバーが消えるのですが
文字列の長さが短くて水平スクロールする必要が無いときでも指定した長さ用の水平スクロールバーがでてしまします。
垂直スクロールバーと違って水平スクロールバーは自分で長さに応じて設定するしか仕方がないのでしょうか?
自動的に消えたり長さが自動的に合わされるような設定はないものでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Youtubeのバグ
-
複数の画像を横にスクロールさ...
-
Excelでワードアートや図を常に...
-
PDFを(htmlのように)無限に縦...
-
文章の自動スクロール
-
TikTokLiteの自動スクロールの...
-
エクセルVBAでフォームのListbo...
-
vb,netでtextboxの文字を右から...
-
スクロールバーの位置
-
リストビューをスクロールさせ...
-
ポストバック時のスクロール位...
-
スクロールバーの表示について
-
MFCでのスクロールバーの扱い
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
マイページはどこを開くの
-
[Java] Edgeでのアドレスバー非...
-
スクリプトって、何ですか?ど...
-
Edge Chrom などの超初心者質問...
-
一定時間おきにアラームやポッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Youtubeのバグ
-
PDFを(htmlのように)無限に縦...
-
TikTokLiteの自動スクロールの...
-
Excelでワードアートや図を常に...
-
リストビューをスクロールさせ...
-
エクセルVBAでフォームのListbo...
-
Visual Basicから Spreadのスク...
-
大きい表へのスクロールバーの...
-
webページで横方向にアンカーを...
-
アコーディオンで開かれたパネ...
-
resizeするとスマホで何度もリ...
-
ポストバック時のスクロール位...
-
リストビューのスクロールバー...
-
マウスオーバー→ホイール回転で...
-
MFCでのスクロールバーの扱い
-
vb,netでtextboxの文字を右から...
-
Excelで1.2行目だけ固定して...
-
一体の時間が経過してからCSSの...
-
html js 横軸の長いチャート
-
リストビューの表示開始行変更
おすすめ情報