Application.AddMessageFilter メソッド
メッセージ フィルタを追加して、ルーティング先にルーティングされる Windows メッセージを監視します。
Public Shared Sub AddMessageFilter( _
ByVal value As IMessageFilter _)
[C#]
public static void AddMessageFilter(IMessageFiltervalue);
[C++]
public: static void AddMessageFilter(IMessageFilter* value);
[JScript]
public static function AddMessageFilter(
value : IMessageFilter);
パラメータ
- value
インストールする IMessageFilter インターフェイスの実装。
解説
メッセージ フィルタを使用して、メッセージがイベント ハンドラに渡される前に、特定のイベントの発生を回避したり、イベントに特別な操作を実行したりします。メッセージ フィルタはスレッドに固有です。
メッセージをディスパッチされないようにするには、このメソッドに渡す value パラメータ インスタンスで、メッセージの処理コードを持つ PreFilterMessage メソッドをオーバーライドする必要があります。このメソッドは false を返します。
注意 アプリケーションのメッセージ ポンプにメッセージ フィルタを追加すると、パフォーマンスを低下させる場合があります。
使用例
[Visual Basic, C#, C++] メッセージ フィルタは、 IMessageFilter インターフェイスを実装してからでなければ使用できません。 TestMessageFilter
というメッセージ フィルタを作成するクラスを次に示します。このフィルタは、マウスの左ボタンに関連するメッセージをすべてブロックします。
' Creates a message filter.
Public Class TestMessageFilter
Implements IMessageFilter
Public Function PreFilterMessage(ByRef m As System.Windows.Forms.Message) _
As Boolean Implements IMessageFilter.PreFilterMessage
' Blocks all the messages relating to the left mouse button.
If ((m.Msg >= 513) And (m.Msg <= 515)) Then
Console.WriteLine("Processing the messages : " & m.Msg)
Return True
End If
Return False
End Function
End Class
[C#]
// Creates a message filter.
public class TestMessageFilter : IMessageFilter {
public bool PreFilterMessage(ref Message m) {
// Blocks all the messages relating to the left mouse button.
if (m.Msg >= 513 && m.Msg <= 515) {
Console.WriteLine("Processing the messages : " + m.Msg);
return true;
}
return false;
}
}
[C++]
// Creates a message filter.
public:
__gc class TestMessageFilter : public IMessageFilter {
public:
bool PreFilterMessage(Message* m) {
// Blocks all the messages relating to the left mouse button.
if (m->Msg >= 513 && m->Msg <= 515) {
Console::WriteLine(S"Processing the messages : {0}", __box(m->Msg));
return true;
}
return false;
}
};
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- SecurityPermission (直前の呼び出し元がアンマネージ コードを呼び出すために必要なアクセス許可) SecurityPermissionFlag.UnmanagedCode (関連する列挙体)
参照
Application クラス | Application メンバ | System.Windows.Forms 名前空間