2011-12-25 71 views
0


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

私がやってすでに試してみてください。

mywindow.EnableScrollBarCtrl(SB_BOTH,TRUE); 

それは、水平および垂直の両方のスクロールバーを表示
が、私は、ボタンを押すか、スクロールバーを移動することはできません。
私は、最初のコマンドの後にも試してみてください。

mywindow.EnableScrollBar(SB_BOTH,ESB_ENABLE_BOTH); 

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

誰かがこのメンバーにスクロールバーを追加する簡単な例を示すことができますか?

おかげでたくさん、
タル

答えて

1

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

+0

どうやってこのマッサージをキャッチしますか?どのように私の機能を追加する:ON_WM_HSCROLL()とON_WM_VSCROLL()は、マッサージが呼び出されたときに呼び出す。 あなたの助けを借りて – Tal

+0

どのようにウィンドウメッセージをキャッチするのかわからない場合、あなたは苦労するでしょう!とにかく、私はここで読んで良い出発点だと思う:http://msdn.microsoft.com/de-de/library/0x0cx6b1.aspx – dwo

0

スクロールバーがアクティブになる前に、いくつかの「オーバーフロー」が存在する必要があります。

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

通常、スクロールバーは、(たとえば)テキストエディタやフォームビューなどのMFCコンポーネントから '自動的に'処理されます。私。明示的な呼び出しなしでも必要になったときに表示されます。EnableScrollBarCtrl ...

+0

このウィンドウに画像を読み込むと、ウィンドウが大きくなり、ウィンドウが大きくなり、スクロールバーが自動的に表示されなくなります。 私はそれを行う方法を理解する必要があります。 – Tal

関連する問題