• 締切済み

リストビューのスクロールについて

VC.NET MFC でリストビュー(CListCtrl)を使用しています。 そのリストビューにある垂直スクロールバーを操作しても、 PreTranslateMessage()になにもコマンドが送られてきません。 ・・・(1) また、LVN_BEGINSCROLLのハンドラを追加してみたんですが、 コンパイル時にLVN_BEGINSCROLLを認識してもらえません。 (コンパイルエラー) ・・・(2) いろいろ調べてcommctrl.hをインクルードしても 必要なDLL(Comctl32.lib ? Comclt32.lib)をプロジェクトに参加させても認識してもらえませんでした。 リストビューのスクロールバー操作時の処理をオーバーロードしたいのですが、できなくて困っています。 どのようにすればよろしいでしょうか? 助言のほどよろしくお願いします。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

派生クラスを作成しても リソースエディタで配置できますよ 配置するときは リストビューコントロールを配置して コントロール変数を割り当てる際に派生クラスを選択できますよ

Ryo0617
質問者

お礼

ありがとうございます。 感動しました。 派生クラスもリソースエディタで配置することができたんですね。 すごく楽になりました。 今まではわざわざラベルなどを配置して、その領域を取得して、その位置にCreateしていたものですから。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

CListCtrlクラスの派生クラスを作って WM_VSCROLL/WM_HSCROLLなどを捕まえたほうが簡単なように思います LVN_BEGINSCROLLとかは stdafx.hのマクロ定義を #define WINVER 0x0500 #define _WIN32_WINNT 0x0501 #define _WIN32_WINDOWS 0x0501 #define _WIN32_IE 0x0560 と設定すれば コンパイルは通るはずです

Ryo0617
質問者

お礼

ありがとうございます。 リソースエディタで配置したいのでサブクラス化はできるだけしたくなかったのですが、 stdafx.hの方を変更する方向でやってみたいと思います。