Application.AddMessageFilter(IMessageFilter) Methode

Definitie

Hiermee voegt u een berichtfilter toe om Windows berichten te bewaken wanneer ze naar hun bestemmingen worden gerouteerd.

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)

Parameters

value
IMessageFilter

De implementatie van de IMessageFilter interface die u wilt installeren.

Voorbeelden

In het volgende codevoorbeeld wordt een berichtfilter gemaakt met de naam TestMessageFilter. Met dit filter worden alle berichten met betrekking tot de linkermuisknop geblokkeerd. Voordat u een berichtfilter kunt gebruiken, moet u een implementatie voor de IMessageFilter interface opgeven.

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

Opmerkingen

Gebruik een berichtfilter om te voorkomen dat specifieke gebeurtenissen worden gegenereerd of om speciale bewerkingen uit te voeren voor een gebeurtenis voordat deze wordt doorgegeven aan een gebeurtenis-handler. Berichtfilters zijn uniek voor een specifieke thread.

Als u wilt voorkomen dat een bericht wordt verzonden, moet het value parameterexemplaren die u aan deze methode doorgeeft, de PreFilterMessage methode overschrijven met de code om het bericht te verwerken. De methode moet worden geretourneerd false.

Caution

Het toevoegen van berichtfilters aan de berichtpomp voor een toepassing kan de prestaties verminderen.

Van toepassing op