次の方法で共有


Windows フォーム アプリケーションにおけるユーザー入力

更新 : 2007 年 11 月

Windows フォームでのユーザー入力は、Windows メッセージの形式でアプリケーションに送られます。これらのメッセージは、オーバーライドできる一連のメソッドにより、アプリケーション、フォーム、コントロールの各レベルで処理されます。これらのメソッドがマウス メッセージやキーボード メッセージを受け取るとイベントが発生し、このイベントを処理することで、マウス入力やキーボード入力に関する情報を取得できます。多くの場合、Windows フォーム アプリケーションは、これらのイベントを処理するだけですべてのユーザー入力を処理できますが、アプリケーションによっては、アプリケーション、フォーム、またはコントロールよりも前に特定のメッセージを受け取ることができるように、メッセージを処理するメソッドのいずれかをオーバーライドする必要がある場合もあります。

マウス イベントとキーボード イベント

すべての Windows フォーム コントロールは、マウス入力とキーボード入力に関連するイベント セットを継承します。たとえば、コントロールは、KeyPress イベントを処理して、押されたキーの文字コードを判別したり、MouseClick イベントを処理して、マウス クリックの位置を特定したりできます。マウス イベントとキーボード イベントの詳細については、「キーボード イベントの使用」および「Windows フォームにおけるマウス イベント」を参照してください。

ユーザー入力メッセージを処理するメソッド

フォームとコントロールは、IMessageFilter インターフェイスと、メッセージ キュー内のさまざまな位置で Windows メッセージを処理する、オーバーライドできる一連のメソッドにアクセスできます。これらのメソッドはすべて、Windows メッセージの下位の詳細情報をカプセル化する Message パラメータを使用します。これらのメソッドを実装またはオーバーライドしてメッセージを調べてから、メッセージを使用したり、メッセージ キュー内の次のコンシューマにメッセージを渡したりできます。Windows フォームですべての Windows メッセージを処理するメソッドを次の表に示します。

メソッド

メモ

PreFilterMessage

キューに追加された (またはポストされた) Windows メッセージをアプリケーション レベルで受け取ります。

PreProcessMessage

Windows メッセージが処理される前に、フォーム レベルまたはコントロール レベルでメッセージを受け取ります。

WndProc

Windows メッセージをフォーム レベルまたはコントロール レベルで処理します。

DefWndProc

Windows メッセージの既定の処理をフォーム レベルまたはコントロール レベルで実行します。ウィンドウの最小限の機能を提供します。

OnNotifyMessage

メッセージが処理された後に、フォーム レベルまたはコントロール レベルでメッセージを受け取ります。このメソッドが呼び出されるようにするには、EnableNotifyMessage スタイル ビットを設定する必要があります。

キーボード メッセージとマウス メッセージは、これらのメッセージの種類に固有の、オーバーライドできる追加のメソッドによっても処理されます。詳細については、「キーボード入力のしくみ」および「Windows フォームにおけるマウス入力のしくみ」を参照してください。

参照

その他の技術情報

Windows フォームでのユーザー入力

Windows フォーム アプリケーションにおけるキーボード入力

Windows フォーム アプリケーションにおけるマウス入力