Application.AddMessageFilter(IMessageFilter) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Lägger till ett meddelandefilter för att övervaka Windows meddelanden när de dirigeras till sina mål.
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)
Parametrar
- value
- IMessageFilter
Implementeringen av det IMessageFilter gränssnitt som du vill installera.
Exempel
I följande kodexempel skapas ett meddelandefilter med namnet TestMessageFilter. Det här filtret blockerar alla meddelanden som rör den vänstra musknappen. Innan du kan använda ett meddelandefilter måste du ange en implementering för IMessageFilter gränssnittet.
// 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
Kommentarer
Använd ett meddelandefilter för att förhindra att specifika händelser utlöses eller för att utföra särskilda åtgärder för en händelse innan den skickas till en händelsehanterare. Meddelandefilter är unika för en specifik tråd.
För att förhindra att ett meddelande skickas måste parameterinstansen value som du skickar till den PreFilterMessage här metoden åsidosätta metoden med koden för att hantera meddelandet. Metoden måste returnera false.
Caution
Om du lägger till meddelandefilter i meddelandepumpen för ett program kan prestanda försämras.