WM_NOTIFYメッセージは、インプレースの「ツールヒント」(メッセージバルーン)やその他のコントロール通知によく使用されますが、コントロールをTFrameに配置すると、WM_NOTIFYメッセージは決してこれらのコントロールでは発生しません。それらのメッセージが私のフォームにもう送信されないのはなぜですか、私はそれについて何ができますか?フォームがTFrameの子のWM_NOTIFYメッセージを受信しないのはなぜですか?
答えて
WM_NOTIFY
は、コントロールの親ウィンドウに送信されます。つまり、自身の親でないTForm
(または別の親)ではなく、TFrame
が直接の子コントロールのメッセージを受信します。
WM_NOTIFY
を直接処理しないでください。新しいWindowProc
ハンドラを割り当てるなどして、子コントロール自体をサブクラス化し、代わりにCN_NOTIFY
メッセージを処理します。 VCLは元のWM_NOTIFY
メッセージを受信し、CN_NOTIFY
というメッセージを自動的にそのメッセージが所属する特定のコントロールに転送します。
WM_COMMAND
(CN_COMMAND
として転送されます)および他の多くの転送システムメッセージについても同様です。 Controls.pasユニットは、転送されたシステムメッセージ用に定義された利用可能なすべてのCN_...
メッセージを定義します。
これは、この特定の質問には適用されない一般的な回答です。ツールチップコントロールが正しく設定されている場合、*所有者*ウィンドウとのインターフェイス。個々の子コントロールではなく、通知するToolTipコントロールであるため意味があります。 –
これは一般的な回答かもしれませんが、Alfa000は一般化された質問をしました。ツールチップを実際に作成して表示する方法の具体的な詳細を知らなくても、 'TForm'はツールチップの所有ウィンドウではない可能性が非常に高いので、なぜ' TForm'が 'WM_NOTIFY' 'TFrame'に置かれたコントロールのメッセージです。私の推測では、実際に 'Control.Handle'や' Control.Parent.Handle'を代わりに使用しています( 'WM_NOTIFY'は' TForm'ウィンドウに 'TForm'自体に置かれたコントロールのために送られます)。 –
あなたのコメントに異論はありませんが、回答はまだ適用されません。 * WM_NOTIFYはコントロールの親ウィンドウに送信されます。*、ToolTipコントロールのウィンドウには親がありません。ポップアップウィンドウです。 –
- 1. Windowsが特定のメッセージを受信しないのはなぜですか?
- 2. リモートパブリックのトランザクションキューからメッセージを受信できないのはなぜですか?
- 3. 子ウィンドウがマウスイベントを受信できないのはなぜですか?
- 4. クライアントがバイトを受信しないのはなぜですか?
- 5. Rubyソケットがすべてのメッセージを受信していない
- 6. ICQボットがメッセージを送信しないのはなぜですか?
- 7. サーバがPOSTデータを受信しないのはなぜですか?
- 8. フォームの送信イベントが発生しないのはなぜですか(jQuery)?
- 9. 断続的にフォーム電子メールを受信しないSMTP
- 10. RabbitMqからのメッセージの受信を確認しない
- 11. Android:サーバからのメッセージを受信していないソケットクライアント
- 12. スニーカーがヒーローでメッセージを受信していない - RabbitMQ Bigwig
- 13. WinFormが作成直後以外のメッセージを受信しない
- 14. メッセージキューサービスの再起動後にサービスがメッセージを受信しない
- 15. CDialogがActiveXコントロールのWindowsメッセージを受信しない
- 16. androidアプリケーションがC2DMサーバからメッセージを受信しない
- 17. なぜ私はFacebookからのメールを受信できないのですか
- 18. 電子メールを受信したときにPHPフォームにメッセージが表示されない
- 19. フォームが自分のフォームからテキスト値を送信しないのはなぜですか?
- 20. GCMメッセージが今日配信されないのはなぜですか?
- 21. 文字エンコーディング:私の電子メール受信コードをPyQt4で実行できないのはなぜですか?
- 22. なぜこのjavascript/jQueryはHTMLフォームを送信しないのですか?
- 23. 受信したメッセージごとに返信フォームのテキストフィールドを追加
- 24. 送信ボタンの名前が「送信」のときにフォームが送信されないのはなぜですか?
- 25. Firebugでは、ネットタブの「受信」値がゼロになるのはなぜですか?
- 26. なぜこのVB.netコードは電子メールを送信しないのですか
- 27. フォームがフィールドを検証しないのはなぜですか?
- 28. 受信メッセージの場所/受信メッセージを傍受する
- 29. sendmailが外部にメッセージを送受信していない
- 30. このフォームを手動で送信できないのはなぜですか?
問題を再現できません。ツールチップのウィンドウスタイル= 0、TToolInfo.uFlags:= TTF_IDISHWNDまたはTTF_SUBCLASS、Info.hwnd:= Form.Handle、Info.uId:= Control.Handle、フレーム自体ではなく、TTN_SHOWやTTN_POPのWM_NOTIFYを受け取ります。何か他のもの(もちろんウィンドウ制御用)。私はあなたが何か間違ってツールヒント自体を設定していると思う。 –