Application.AddMessageFilter(IMessageFilter) Application.AddMessageFilter(IMessageFilter) Application.AddMessageFilter(IMessageFilter) Application.AddMessageFilter(IMessageFilter) Method

Definition

Fügt einen Meldungsfilter zum Überwachen von Windows-Meldungen beim Weiterleiten an das Ziel hinzu.Adds a message filter to monitor Windows messages as they are routed to their destinations.

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)

Parameter

value
IMessageFilter IMessageFilter IMessageFilter IMessageFilter

Die Implementierung der zu installierenden IMessageFilter-Schnittstelle.The implementation of the IMessageFilter interface you want to install.

Beispiele

Das folgende Codebeispiel erstellt einen Nachrichtenfilter namens TestMessageFilter.The following code example creates a message filter called TestMessageFilter. Dieser Filter wird blockiert, alle Nachrichten, die in Bezug auf die linke Maustaste gedrückt wird.This filter blocks all messages relating to the left mouse button. Bevor Sie einen Nachrichtenfilter verwenden können, müssen Sie angeben, eine Implementierung für die IMessageFilter Schnittstelle.Before you can use a message filter, you must provide an implementation for the IMessageFilter interface.

// 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.
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
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

Hinweise

Verwenden Sie einen Nachrichtenfilter, um zu verhindern, dass bestimmte Ereignisse ausgelöst wird oder besondere Vorgänge für ein Ereignis aus, bevor sie an einen Ereignishandler übergeben wird.Use a message filter to prevent specific events from being raised or to perform special operations for an event before it is passed to an event handler. Nachrichtenfilter gelten nur für einen bestimmten Thread.Message filters are unique to a specific thread.

Um zu verhindern, dass eine Nachricht gesendet wird, die value muss Parameterinstanz, die Sie an diese Methode übergeben, überschreiben die PreFilterMessage -Methode durch den Code zur Verarbeitung der Nachricht.To prevent a message from being dispatched, the value parameter instance that you pass to this method must override the PreFilterMessage method with the code to handle the message. Die Methode muss falsezurückgeben.The method must return false.

Achtung

Hinzufügen von Nachrichtenfilter für die meldungsverschiebung für eine Anwendung kann die Leistung beeinträchtigt.Adding message filters to the message pump for an application can degrade performance.

Sicherheit

SecurityPermission
für den unmittelbaren Aufrufer nicht verwalteten Code aufrufen.for the immediate caller to call unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode

Gilt für: