• ベストアンサー

3つの水平スクロールバーの違いについて知りたいです。

3つの水平スクロールバーの違いについて知りたいです。 僕は、VC++6.0でエディタを作ろうとしているWINAPI初心者です。 ダイアログボックスにリソースエディタで3つスクロールバーを配置しました。 しかし、どうすれば、それぞれのスクロールバーが動いたか知ることが出来ませんでした。 ネットで検索しても出てこないので、ここで質問させて貰いました。 よろしくお願いします。

  • TKOZ
  • お礼率38% (8/21)

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

MFC使用しているのか、Win32APIでやっているのか不明ですが…… MFCならコントロール変数としてCScrollBarクラス辺りを使用することになるでしょう。 コントロールIDと変数を紐づけることで、判別可能かと思われます。 Win32APIならば、WM_HSCROLLやWM_VSCROLLで通知され、lParamニHWNDが入っていますのでウィンドウハンドルから判別できるでしょう。

TKOZ
質問者

お礼

ありがとうございます。 おかげでスクロールバーのHWNDが取得できました。

関連するQ&A

  • ダイアログのスクロールバー

    VC++6.0 MFC お世話になります。 メニューからモードレスダイアログを発生させてそこに文字列を書き出しているのですが、文字列が多い場合、入りきれません。そこでダイアログリソースに標準スクロールバーを付加させました。しかし、ソースが煩雑になっていきます。 調べてみれば、ウィンドウでは基本クラスをCScrollViewにすることにより、スクロールバーのメッセージ処理コードのを大半を肩代わりしてくれることを知りました。 そこで、ダイアログでもこのように便利なことはできないかと質問をした次第です。 できるのであれば、方針などを教えてください。 よろしくお願いします。

  • VBA:水平スクロールバーが要らない!

    XP&Excel2000でVBAを組んでいるビギナーです。 その中でリストボックスを入れたいのですが、例えば、 4文字程度のテキストしかリストになく、 リストボックスの幅は十分それ以上のスペースがあるのに、 走らせてみると水平スクロールバーが表示されており、 additemで“テキスト”と追加したはずのデータが、まるで“  テキスト  ”と前後に余計なスペースが混じっているような感じになってしまいます。 これは一体何が原因でしょうか? また、リストボックスにはスクロールバーに関するプロパティが見当たりませんが、そもそもスクロールバーを直接設定することはできないのでしょうか? よろしくお願いいたします。

  • 水平スクロールができない。

    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になります。 どうすれば水平スクロールバーを出すことができ水平スクロールできるようになるのでしょうか。

  • MFCで水平スクロールバー

    非常に初歩的な質問で申し訳ありませんが、Visual C++のMFCでメインのウインドウに水平スクロールバーを取り付けるにはどうすればできるのでしょうか?

  • 水平スクロールから垂直スクロールへ変えたい

    いつもお世話になっております。 会社の同僚から質問があり、解決方法が分からなかったので、質問させて頂きます。 エクセルデータが100件ほど入ったフォルダがあるのですが、 それを開くとスクロールバーが水平方向のものしか表示されないそうです。 これでも特に問題は無いのですが、 使いづらいので垂直スクロールバーに変更したいとのことです。 ちなみに、試しで同様のフォルダを新規で作成したところ、 やはり水平スクロールバーが表示されるそうです。 又、こちらで類似の質問を発見し「アイコンの自動整列」にチェックを入れるという解決方法を試してみようとしたのですが、 なぜかその項目がグレーになっており、選択できませんでした。 長くなりましたが、この水平スクロールバーを垂直スクロールバー表示へ変更する方法はありますか? 宜しくお願い致します。

  • chromeで水平スクロールバーでない

    水平スクロールバーが出ない。 chromeとMSEdgeでは出ない。 PPやエクスプローラーでは出ない。 wordやEXCELでは出る。 ※OKWAVEより補足:「NEC 121ware :ソフトウェア」についての質問です

  • Wordのスクロールバーが隠れてしまった

    Wordのスクロールバーが水平、垂直ともに隠れてしまっている。 (「詳細設定」の「表示」は、チェックボックスにチェックが入っている) ※OKWAVEより補足:「富士通FMV」についての質問です。

  • エクセルのシート見出しと水平スクロールバーについて

    エクセルのシート見出しと水平スクロールバーが表示されません。ツール⇒オプション⇒表示で、シート見出しと水平スクロールバーには、チェックが入っています。ほかにもいろいろ試しましたが、全く表示されません。同じデータを他のPCで開くと表示されます。 どうしたらいいでしょうか? ちなみにマイクロソフト社のカスタマーセンターに電話をしてみたところ、2003年バージョンは質問に回答するのに4200円かかると言われました。(信じられない・・・)

  • テキストボックスとスクロールバー

     VC++ 2005 Express Edition を使用しています.  テキストボックスへの文字列の(末尾への)追加を下のように行っています. vvv this->textBox1->Text = this->textBox1->Text + "\r\n" + textBox2->Text; ^^^  追加を繰り返してテキストの行数がテキストボックスの高さを越えると右端にスクロールバーが出るのですか,上の方法で追加していくとスクロールバーがテキストボックスの上辺に付いたままで,追加しているテキストを確認できません(スクロールバーの長さは小さくなっているので,文字列が追加されている,ということは分かります).  テキストの行数がテキストボックスの高さ以上になったときに,スクロールバーをテキストボックスの下辺に付ける,ということはできるのでしょうか.

  • スクロールバーが勝手に回転するようになりました。

    ある日突然スクロールバーが勝手に回転するようになりました。 それだけではなく、ダイアログボックスの中まで動きます。 これはインターネットだけでなく、ウィンドウすべてに作用してしまいます。 終了する時も、「終了」「再起動」「スタンバイ」のダイアログボックス内が くるくる回ってどうしようもありません。 そこでマウスのデバイス(設定)をしたいのですがどのようにすればよろしいですか?

専門家に質問してみよう