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. クライアントがバイトを受信しないのはなぜですか?
- 6. 電子IPC:なぜ私のipcメッセージが受信されていませんか?
- 7. JavaScriptがフォームを送信しないのはなぜですか?
- 8. キューがサブスクリプション・イベントを受信しますが、プログラムは受信しないのはなぜですか?
- 9. receive()メソッドがクライアントからデータを受信しないのはなぜですか?
- 10. クライアントがサーバーからファイルを受信しないのはなぜですか?
- 11. ICQボットがメッセージを送信しないのはなぜですか?
- 12. データペイロードが提供されているときにWM_COPYDATAメッセージが受信されないのはなぜですか?
- 13. Rubyソケットがすべてのメッセージを受信していない
- 14. 正しいデータが受信されないのはなぜですか?
- 15. サーバがPOSTデータを受信しないのはなぜですか?
- 16. PythonサーバーでJSONメッセージが[なし]として受信されるのはなぜですか?
- 17. 電子メールが受信者に送信されないのはなぜですか?
- 18. IOTハブがメッセージを受信しない、または送信しない
- 19. drupal_mail()でメッセージの本文が送信されないのはなぜですか?
- 20. フォームの送信イベントが発生しないのはなぜですか(jQuery)?
- 21. ブロードキャスト受信者が着信SMSメッセージを受信していない
- 22. 私のPHPスクリプトは私の電子メールに連絡フォームを送信しないのはなぜですか?
- 23. RabbitMqからのメッセージの受信を確認しない
- 24. Android:サーバからのメッセージを受信していないソケットクライアント
- 25. RabbitMQプロデューサーからのメッセージを受信していないコンシューマー
- 26. PHPメーラーが電子メールを送信しないのはなぜですか?
- 27. メッセージが1つしかないのはなぜですか?
- 28. 断続的にフォーム電子メールを受信しないSMTP
- 29. netcat udpメッセージがnetcatリスナーによって受信されないのはなぜですか?
- 30. なぜ私はFacebookからのメールを受信できないのですか
問題を再現できません。ツールチップのウィンドウスタイル= 0、TToolInfo.uFlags:= TTF_IDISHWNDまたはTTF_SUBCLASS、Info.hwnd:= Form.Handle、Info.uId:= Control.Handle、フレーム自体ではなく、TTN_SHOWやTTN_POPのWM_NOTIFYを受け取ります。何か他のもの(もちろんウィンドウ制御用)。私はあなたが何か間違ってツールヒント自体を設定していると思う。 –