- PR -

PreProcessMessageメソッドを利用してUserControl上のコントロールで発生するメッセージを処理するには

1
投稿者投稿内容
taa
常連さん
会議室デビュー日: 2005/08/29
投稿数: 44
投稿日時: 2006-06-30 11:25
VB.NETのUserControlクラスにて、
 Public Overrides Function PreProcessMessage 記述して、方向キー操作によるメッセージを処理しようとしています。

UserControl上で発生するキーストロークについては上記の処理でメッセージを捕えることができますが、UserControl上に作成されたコントロールのメッセージは捕えることができません。

PreProcessMessageの処理がUserControl上で発生するメッセージのみを対象としているため、そうなるのは理解できるのですが、UserControl上に配置されているコントロール上で発生するメッセージを捕えるにはどうしたらよいのでしょうか?
以前もWndProcメソッドにて同じような質問をあげており、NativeWindowクラスのサブクラス化を行うことで対応できましたが、PreProcessMessageはNativeWindowクラスには
存在しない為、困っています。

内容としては、UserControlクラスにMSFlexGridコントロールとスクロールバーを配置したカスタムコントロールを作成したいと思っており、MSFlexGridコントロール(ActiveX)上で方向キーを押下した時のメッセージを取得ししたいと思っています。
また、直接MSFlexGridコントロールを継承したクラスからは、方向キーを押下した時のメッセージを捕らえる事ができる事は確認しています。

よろしくお願いいたします。

<環境>
VS2003
VB.NET
.NET Framework1.1


[ メッセージ編集済み 編集者: taa 編集日時 2006-06-30 11:26 ]
taa
常連さん
会議室デビュー日: 2005/08/29
投稿数: 44
投稿日時: 2006-07-02 13:26
回答がないのでこのスレッドをクローズします。
質問の仕方が悪かったかもしれないので、
もう一度質問内容を見直して質問します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-02 13:52
引用:

taaさんの書き込み (2006-06-30 11:25) より:

UserControl上で発生するキーストロークについては上記の処理でメッセージを捕えることができますが、UserControl上に作成されたコントロールのメッセージは捕えることができません。


コンテナ自身でない限り方向キーを捕えることはできません。
方向キー、PageUp、Down など以外のキーであれば、捕えることができたりしそうですが。

[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-07-02 14:02 ]
1

スキルアップ/キャリアアップ(JOB@IT)