リストビューでスクロール処理

[戻る]
ワカメ 2006/10/31(火) 08:40:21
タイトルのとおりリストビューの垂直スクロールバーを処理したいと思ってます。
アプリはMFCのダイアログタイプでリストビューのレポートタイプが1つです。
これのスクロール処理(UP、DOWNなど)をしたいと思い、
CFooDlg::OnVScrollを追加しました。
しかし、スクロールを動かしてもOnVScrollが呼ばれません。
リストだとちゃんと処理されるのにリストビューだとダメです。
何がいけないんでしょうか?スクロール処理をする方法はどうやるのでしょうか?
環境はVC++.net2003です。

Blue 2006/10/31(火) 09:19:06
リストビューのスクロール処理ですよね?

>CFooDlg::OnVScrollを追加しました。
これはどうやって追加しましたか?
ダイアログのWM_VSCROLLではないですよね?

>リストだとちゃんと処理されるのにリストビューだとダメです。
ここでいうリストとはリストボックスのことでしょうか?

(VC++.net2003だとわかりませんけど)
VC++6.0だと、ClassWizardからダイアログ上のリストビューのスクロールイベントをハ
ンドル出来ないようなので、CListCtrlを継承したクラスを使うしかなさそう。

ワカメ 2006/10/31(火) 10:06:04
レスありがとうございます

>これはどうやって追加しましたか?
>ダイアログのWM_VSCROLLではないですよね?
ダイアログのWM_VSCROLLです。ソースのプロパティから追加しました。

>ここでいうリストとはリストボックスのことでしょうか?
リストボックスです。

>VC++6.0だと、ClassWizardからダイアログ上のリストビューのスクロールイベントを
>ハンドル出来ないようなので、CListCtrlを継承したクラスを使うしかなさそう。
出来ないですか。継承とかよくわかりませんので調べてみます。

Blue 2006/10/31(火) 10:30:07
>継承とかよくわかりませんので調べてみます。
IDE上ならば、「クラスの追加」ダイアログで MFC の CListCtrl を基本クラスにしてク
ラスを追加すれば簡単に継承したクラスを作成することが出来ます。

あとは、任意のイベントハンドラ(WM_VSCROLL)を設定し、ダイアログのコントロール変
数として割り付ければ簡単に出来ます。
(コントロール変数に割り付けるのも、確か「変数の追加」あたりで出来ます。)

ここらへんの作業は入門書とかに書かれていることが多いかと思います。
(VCのバージョンによって操作方法が異なるので、きちんと適したものを読む必要があり
ますが。)

ワカメ 2006/10/31(火) 10:56:47
[[解決]]
レスありがとうございました。

勉強してみます。

古いスレッドには追加発言できません。