WndProc
フォーム アプリケーションでの使用について基本的な質問があります。WndProc
フォームイベントが利用可能な場合、メソッドの使用法を知りたいです。カスタム メッセージを作成する必要があるのはどのような場合ですか? MSDNは、Windows メッセージを処理するためだけに使用されることを示しています。
2 に答える
WndProc は、WinForms が Win32 ウィンドウ メッセージのラッパーを提供し、使いやすく理解しやすい .NET レイヤーを提供する方法です。
通常、次のように動作します。WM_LBUTTONDOWN Windows メッセージの例を見てみましょう。Windows.Forms.Control.WndProc は、このメッセージをインターセプトし、メッセージの WPARAM と LPARAM から関連情報を抽出します。次に、MouseEventArgs に適切にパッケージ化された関連情報を使用して、保護された仮想メソッド OnMouseDown を呼び出します。実装は、独自の処理の最後に MouseDown イベントを発生させます。
そのため、一連の OnXXXX メソッド/XXXX イベントを処理する方が、Windows メッセージを直接インターセプトするよりもはるかに簡単です。
しかし、関心のある Windows メッセージが WinForms によって処理されない場合はどうなるでしょうか? その場合、WndProc をオーバーライドして、自分で直接処理できます。もう 1 つの用途は、メッセージをインターセプトし、コントロール自体が処理する前に破棄することです。または、アプリケーション内のコントロール間で送信するカスタム メッセージを作成できます。コントロールが受け取るすべてのメッセージを確認したい場合のデバッグにも役立ちます。1 か所にログを追加するだけで済みます。
.NET は Win32 のラッパーです。Windows のすべてのメソッド、イベント、およびプロパティを 100% 公開しているわけではありません。
そのため、時にはカバーの下に入る必要があります。
しかし、それはあなたが探しに行くものではありません - あなたの問題がそれを必要とするとき、古き良き Stack Exchange 検索は通常あなたに知らせます.