Application.AddMessageFilter(IMessageFilter) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy üzenetszűrőt ad hozzá, amely figyeli Windows üzeneteket, miközben a céljukra irányítják őket.
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)
Paraméterek
- value
- IMessageFilter
A telepíteni kívánt felület implementálása IMessageFilter .
Példák
Az alábbi példakód egy üzenetszűrőt hoz létre.TestMessageFilter Ez a szűrő letiltja a bal egérgombbal kapcsolatos összes üzenetet. Mielőtt használhatja az üzenetszűrőt, meg kell adnia egy implementációt a IMessageFilter felülethez.
// 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
Megjegyzések
Üzenetszűrővel megakadályozhatja bizonyos események létrehozását, vagy speciális műveleteket hajthat végre egy eseményen, mielőtt egy eseménykezelőnek továbbítanák. Az üzenetszűrők egyediek egy adott szálhoz.
Az üzenet elküldésének megakadályozása érdekében a value metódusnak átadott paraméterpéldánynak felül kell bírálnia a PreFilterMessage metódust az üzenet kezeléséhez használandó kóddal. A metódusnak vissza kell térnie false.
Figyelmeztetés
Az alkalmazás üzenetszűrőinek hozzáadása az üzenetszivattyúhoz csökkentheti a teljesítményt.