
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ランキング
-
Excelでワードアートや図を常に...
-
エクセルVBAでフォームのListbo...
-
PDFを(htmlのように)無限に縦...
-
Visual Basicから Spreadのスク...
-
TikTokLiteの自動スクロールの...
-
アコーディオンで開かれたパネ...
-
vb,netでtextboxの文字を右から...
-
リストビューをスクロールさせ...
-
jscrollpaneで1番上を表示する
-
文章の自動スクロール
-
TreeViewのスクロール制御
-
大きい表へのスクロールバーの...
-
マウスオーバー→ホイール回転で...
-
html js 横軸の長いチャート
-
エクセルで行を固定しその下か...
-
上下キーを押すと、ページスク...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
別フォームから戻ったときのイ...
-
マイページはどこを開くの
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
PDFを(htmlのように)無限に縦...
-
リストビューをスクロールさせ...
-
エクセルVBAでフォームのListbo...
-
TikTokLiteの自動スクロールの...
-
マウスオーバー→ホイール回転で...
-
vb,netでtextboxの文字を右から...
-
大きい表へのスクロールバーの...
-
アコーディオンで開かれたパネ...
-
Visual Basicから Spreadのスク...
-
webページで横方向にアンカーを...
-
ページ読み込み時に自動でスク...
-
ページ訪問時にiframe内を自動...
-
文章の自動スクロール
-
リストボックスをクリックした...
-
グループボックス内のコンボボ...
-
JTableの行ヘッダーを非表示に...
-
ジャバスクリプトを教えて下さい
-
スクロールボタンを押してもス...
-
このサイトのスクロール逆じゃ...
おすすめ情報