2


CWndクラス名mywindowのメンバーがいて、
それにスクロールバーを追加したいと思います。
どうすればいいですか?

私はすでにやろうとしています:

mywindow.EnableScrollBarCtrl(SB_BOTH,TRUE);

水平スクロールバーと垂直スクロールバーの両方が表示されます
が、ボタンを押したり、スクロールバーを移動したりできません。
私は最初のコマンドの後でも試します:

mywindow.EnableScrollBar(SB_BOTH,ESB_ENABLE_BOTH);

そしてそれは何も変わりません。

誰かがこのメンバーにスクロールバーを追加する簡単な例を教えてもらえますか?

どうもありがとう、
タル

4

3 に答える 3

2

スクロールバーを有効にするだけでは不十分です。WM_HSCROLLウィンドウメッセージとに反応する必要がありますWM_VSCROLL。このGetScrollInfoメソッドを使用して、スクロールバーの位置(値)を取得し、この位置に従ってウィンドウコンテンツを描画します。

于 2011-12-27T12:23:45.093 に答える
1

http://www.codeproject.com/KB/dialog/scrolling_support.aspxなどのスクロールバーのチュートリアルを検索してください。本質的に、上記のdwoのコメントは、あなたがする必要があることです-それらのメッセージを処理し、仮想クライアント領域のサイズを設定します。

于 2011-12-28T10:11:11.713 に答える
0

スクロールバーがアクティブになる前に、「オーバーフロー」が発生している必要があります。

ビューに「十分に長い」データを書き込むと、スクロールバーがアクティブになります(少なくとも、それは以前の私の経験でした)。

通常、スクロールバーは、(たとえば)テキストエディタやフォームビューなどのMFCコンポーネントから「自動的に」処理されます。つまり、EnableScrollBarCtrlを明示的に呼び出さなくても、必要に応じて表示されるようになります...

于 2011-12-25T16:48:10.173 に答える