WM_NOTIFYのドキュメントは簡単に見つけるWM_REFLECT_NOTIFY
ことができますが、ドキュメントを見つけることができない、を参照するかなりの量のサンプルコードと記事を見つけています。
とは何ですかWM_REFLECT_NOTIFY
、そのドキュメントはどこにありますか?このメッセージはどのように異なりWM_NOTIFY
ますか?
参照例:
WM_NOTIFYのドキュメントは簡単に見つけるWM_REFLECT_NOTIFY
ことができますが、ドキュメントを見つけることができない、を参照するかなりの量のサンプルコードと記事を見つけています。
とは何ですかWM_REFLECT_NOTIFY
、そのドキュメントはどこにありますか?このメッセージはどのように異なりWM_NOTIFY
ますか?
参照例:
WM_REFLECT_NOTIFY
の値0x204E
、つまり0x2000
+を持つと呼ばれますWM_NOTIFY
。メッセージリフレクションの一般的な使用法は、おそらくサブクラス化されたコントロールが通知自体を処理できるように、通知を発信元に送り返すことです。
したがって、不足している可能性があり、ドキュメントを探しているという知識は、コントロールWM_NOTIFY
が通常の方法でその親に送信するということです。そして、親はメッセージ番号+元SendMessage
のを使用して、同じメッセージパラメータをコントロールに戻します。パラメータの意味は、元のメッセージと同じであると想定されています(あなたの場合)。0x2000
Msg
wParam
lParam
WM_NOTIFY
定数0x2000
は、フレームワークごとに異なる可能性があります。そうでない場合は、コントロールとホスティングウィンドウ間のプライベートな合意である可能性があります。
たとえば、MFCおよびActiveXコントロールは、メッセージを反映してWM_NOTIFY
メッセージを作成しOCM_NOTIFY
ます。ここで、(olectl.h):
#define OCM_NOTIFY (OCM__BASE + WM_NOTIFY)
#define OCM__BASE (WM_USER+0x1c00)
そして最後に(winuser.h):
#define WM_USER 0x0400
つまり、OCM_NOTIFY
は0x204E
、あなたと同じWM_REFLECT_NOTIFY
です。ここからのものに関するMSDNドキュメント:リフレクトウィンドウメッセージID。