Freigeben über


Application.AddMessageFilter(IMessageFilter) Methode

Definition

Fügt einen Meldungsfilter zum Überwachen von Windows-Meldungen beim Weiterleiten an das Ziel hinzu.

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

Die Implementierung der zu installierenden IMessageFilter-Schnittstelle.

Beispiele

Im folgenden Codebeispiel wird ein Nachrichtenfilter namens " TestMessageFilter. Dieser Filter blockiert alle Nachrichten im Zusammenhang mit der linken Maustaste. Bevor Sie einen Nachrichtenfilter verwenden können, müssen Sie eine Implementierung für die IMessageFilter Schnittstelle bereitstellen.

// 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

Hinweise

Verwenden Sie einen Nachrichtenfilter, um zu verhindern, dass bestimmte Ereignisse ausgelöst werden oder spezielle Vorgänge für ein Ereignis ausführen, bevor es an einen Ereignishandler übergeben wird. Nachrichtenfilter sind für einen bestimmten Thread eindeutig.

Um zu verhindern, dass eine Nachricht übermittelt wird, muss die value Parameterinstanz, die Sie an diese Methode übergeben, die Methode mit dem Code außer PreFilterMessage Kraft setzen, um die Nachricht zu behandeln. Die Methode muss falsezurückgeben.

Achtung

Das Hinzufügen von Nachrichtenfiltern zur Nachrichtenpumpe für eine Anwendung kann die Leistung beeinträchtigen.

Gilt für