dポイントプレゼントキャンペーン実施中!

お世話になります、fujicafeと申します。
現在、VC++でMFCのダイアログベースのアプリケーションを作成し、そこでリストコントロールを配置させています。
リストコントロールは自動的に垂直方向のスクロールバーを表示させるようにしています。
そこで質問なのですが、現在、リストコントロールの垂直方向のスクロールをスクロールバーの操作ではなく、キー操作によって行おうと思っているのですがどのようにすればスクロールバーの操作を無効にできますでしょうか?
ポイントとしては
・リストコントロールの自動的に表示させる垂直スクロールバーはそのまま表示させたい(スクロールバーは全体行での現在の行の位置を示すだけ)
・リストコントロールの垂直方向の移動はキー操作でしたい。

これを実現するには、やはりリストコントロールのスクロールバー表示を無しにし、別でスクロールバーを設置させるしか方法はないでしょうか?
現状で、キー操作でのリストコントロールのスクロールバーの操作は実現できていますので、出来ればリストコントロールのスクロールバーの操作の無効のみが出来ればいいなと思っております。
ご意見がありましたら、よろしくお願いいたします。

尚、開発環境は
Windows CE 6.0
Visual Studio 2005
です。

A 回答 (1件)

>出来ればリストコントロールのスクロールバーの操作の無効のみが出来ればいいなと思っております。



試していないので、アイディアだけですが、WM_NCHITTESTを処理して、HTVSCROLLを返さないようにするのはどうでしょうか?
    • good
    • 0
この回答へのお礼

titokani様、返答が遅くなり大変申し訳ございませんでした。ご回答ありがとうございます。
さっそく、WM_NCHITTESTを試してみたところどうも現在の開発環境であるWindows CE ではこのコマンドが対応されておらず、メッセージを取得することができませんでした。
なので、対応としてCListCtrlの派生クラスを新たにダイアログのサブクラスとして作成し、その派生クラス内でWM_VSCROLLメッセージの処理をすることで実現することが出来ました。
貴重なご意見ありがとうございました。

お礼日時:2009/08/18 11:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!