Application.AddMessageFilter(IMessageFilter) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
メッセージ フィルターを追加して、ルーティング先にルーティングされる Windows メッセージを監視します。
public:
static void AddMessageFilter(System::Windows::Forms::IMessageFilter ^ value);
public static void AddMessageFilter (System.Windows.Forms.IMessageFilter value);
public static void AddMessageFilter (System.Windows.Forms.IMessageFilter? value);
static member AddMessageFilter : System.Windows.Forms.IMessageFilter -> unit
Public Shared Sub AddMessageFilter (value As IMessageFilter)
パラメーター
- value
- IMessageFilter
インストールする IMessageFilter インターフェイスの実装。
例
次のコード例では、 というメッセージ TestMessageFilter
フィルターを作成します。 このフィルターは、マウスの左ボタンに関連するすべてのメッセージをブロックします。 メッセージ フィルターを使用する前に、 インターフェイスの実装を指定する IMessageFilter 必要があります。
// Creates a message filter.
ref class TestMessageFilter: public IMessageFilter
{
public:
[SecurityPermission(SecurityAction::LinkDemand, Flags = SecurityPermissionFlag::UnmanagedCode)]
virtual bool PreFilterMessage( Message % m )
{
// Blocks all the messages relating to the left mouse button.
if ( m.Msg >= 513 && m.Msg <= 515 )
{
Console::WriteLine( "Processing the messages : {0}", m.Msg );
return true;
}
return false;
}
};
// 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;
}
}
' Creates a message filter.
<SecurityPermission(SecurityAction.LinkDemand, Flags := SecurityPermissionFlag.UnmanagedCode)> _
Public Class TestMessageFilter
Implements IMessageFilter
<SecurityPermission(SecurityAction.Demand)> _
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
注釈
メッセージ フィルターを使用して、特定のイベントが発生しないようにしたり、イベント ハンドラーに渡される前にイベントに対して特別な操作を実行したりします。 メッセージ フィルターは、特定のスレッドに固有です。
メッセージがディスパッチされないようにするには、 value
このメソッドに渡すパラメーター インスタンスで、メッセージを処理するコードで メソッドをオーバーライド PreFilterMessage する必要があります。 メソッドは false
を返します。
注意事項
アプリケーションのメッセージ ポンプにメッセージ フィルターを追加すると、パフォーマンスが低下する可能性があります。
適用対象
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示