Application.AddMessageFilter(IMessageFilter) Metódus

Definíció

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.

A következőre érvényes: