|
分類:[C/C++]
てつと申します。 VC++9.0で開発しております。
Win32コモンコントロールからその親ウィンドウに対して通知されるWM_COMMAND メッセージのハンドラ関数(OnCommandなど)の中で、 そのメッセージが送出されるきっかけとなったウィンドウメッセージ(WM_KEYDOWNやWM_LBUTTONUPなど)を知りたいのですが、 なにかのAPIで簡単に判定するようなことは可能でしょうか?
具体的には、コンボボックスの選択項目が変更された時の、CBN_SELCHANGE の通知メッセージが、 マウス操作(クリック)によるものか、キー操作(上下矢印キーなど)によるものかを区別したいのです。
コンボボックスのサブクラス化をして、WM_KEYDOWNのすぐあとに、WM_COMMANDでCBN_SELCHANGEが送られてきていれば、キー操作によるものと 判断できるのかと考えたのですが、フラグで状態管理するような方法はとりたくないので、もっとよい方法があれば、教えていただきたいのです。
イメージとしては、処理済みのウィンドウメッセージをバッファリングしておき、 マウスによるものかキー入力によるものかを判定することになるかと思いますが、 そのようなことがシステム側の機能として提供されているものなのでしょうか?
基本的なことがわかっていなくて申し訳ありませんが、ご存知の方がいらっしゃいましたら、ご教授願います。
|