解決済みの質問

質問No.565972
暇なときにでも
暇なときにでも
お気に入り投稿に追加する (0人が追加しました)
回答数2
閲覧数497
水平スクロールができない。
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になります。
どうすれば水平スクロールバーを出すことができ水平スクロールできるようになるのでしょうか。
投稿日時 - 2003-06-04 16:53:47

質問者が選んだベストアンサー

回答No.2
あれ?正しく幅を設定すればスクロールバー消えるはずですけど。
消えないように(不要なときは使用不可)するには
LBS_DISABLENOSCROLLを指定する必要があります。

なんで、長さの計算が合っていないのでは?
固定値を入力するのではなく、ちゃんとGetTextExtentPoint等を使ってデバイスコンテキストから

必要なピクセル数求めないとダメですよ。
投稿日時 - 2003-06-05 00:50:41
この回答を支持する
(現在0人が支持しています)
お礼
やっぱりおおちゃくは駄目ですね。
すべての項目文字の幅のなかの最大値を求めてそれで幅を設定しなければならないのですね。
リストコントロールがやってくれたらというのは贅沢ですね。
ありがとうございました。
投稿日時 - 2003-06-05 01:43:32

ベストアンサー以外の回答 (1)

回答No.1
LB_SETHORIZONTALEXTENTは、ピクセル数を指定します。

ソースで256と指定しているので、256ピクセル分しかリストの幅はないということになるので、256ピクセルより幅が広い場合はスクロールバーは出ません。

文字数ではないところに注意してください。
投稿日時 - 2003-06-04 19:11:07
この回答を支持する
(現在0人が支持しています)
お礼
ありがとうございました。解決しました。
SendMessage(hLB,LB_SETHORIZONTALEXTENT,16384,0);
とすれば動きました。
どうも符号付き2バイト整数のようで32768以上を設定すると駄目みたいですが余り大きく設定するとスクロール範囲が広がりすぎ利用しない方がましになってしまいます。
データ数が少なく垂直スクロールする必要が無いときには自動的に垂直スクロールバーが消えるのですが
文字列の長さが短くて水平スクロールする必要が無いときでも指定した長さ用の水平スクロールバーがでてしまします。
垂直スクロールバーと違って水平スクロールバーは自分で長さに応じて設定するしか仕方がないのでしょうか?
自動的に消えたり長さが自動的に合わされるような設定はないものでしょうか?
投稿日時 - 2003-06-04 22:58:09
この質問は役に立ちましたか?
2人が「このQ&Aが役に立った」と投票しています
もっと聞いてみる

関連するQ&A

  • question

    HLB値の求め方HLB値の求め方 ...

  • question

    itoaわかりませんc言語で、itoaの関数を使いたいのですが、stdlib.hに設定されてなく、エラーが、'_i...

  • question

    TextOutについてウィンドウの雛形に、 case WM_PAINT:{ static int t; PAINTS...

  • question

    エタノールのHLB値エタノールのHLB値を教えてください。 よろしくお願いします。 ...

  • question

    HLBの計算方法HLBの計算方法は幾つかあったと思いますが、思い出せません。 ご紹介いただけませんでしょうか?...

  • question

    乳化剤のHLBについて親水性でなく、親油性でもない食品に使える塗布剤(直接食品に塗布はしません)のようなものを探して...

この他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する

関連するガイド記事

    回答募集中

    同じカテゴリの人気Q&Aランキング

    カテゴリ
    C・C++
    -PR-

    OKWaveのおすすめ情報

    特集

    このQ&Aの関連キーワード

    同じカテゴリの人気Q&Aランキング

    カテゴリ
    C・C++
    -PR-

    ピックアップ

    -PR-
    -PR-