WM_NOTIFY メッセージは、インプレースの「ツール ヒント」(メッセージ バルーン) やその他のコントロール通知によく使用されますが、TFrame にコントロールを配置すると、これらのコントロールに対して WM_NOTIFY メッセージは発生しません。これらのメッセージがフォームに送信されなくなったのはなぜですか?どうすればよいですか?
1171 次
1 に答える
7
WM_NOTIFY
コントロールの親ウィンドウに送信されます。つまりTFrame
、自身の親TForm
(または別の親)ではなく、が直接の子コントロールのメッセージを受信します。
WM_NOTIFY
直接取り扱ってはいけません。WindowProc
新しいハンドラーを割り当てるなどして、子コントロール自体をサブクラス化し、CN_NOTIFY
代わりにメッセージを処理します。VCLは元のメッセージを受信し、それが属する特定のコントロールにメッセージWM_NOTIFY
として自動的に転送します。CN_NOTIFY
WM_COMMAND
同じことが(として転送されるCN_COMMAND
)および他の多くの転送されるシステムメッセージにも当てはまります。CN_...
Controls.pasユニットは、転送されたシステムメッセージに対して定義されている使用可能なすべてのメッセージを定義します。
于 2011-12-14T21:36:50.300 に答える