Bagikan melalui


Application.AddMessageFilter(IMessageFilter) Metode

Definisi

Menambahkan filter pesan untuk memantau pesan Windows saat dirutekan ke tujuannya.

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)

Parameter

value
IMessageFilter

Implementasi antarmuka yang IMessageFilter ingin Anda instal.

Contoh

Contoh kode berikut membuat filter pesan yang disebut TestMessageFilter. Filter ini memblokir semua pesan yang berkaitan dengan tombol mouse kiri. Sebelum dapat menggunakan filter pesan, Anda harus menyediakan implementasi untuk IMessageFilter antarmuka.

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

Keterangan

Gunakan filter pesan untuk mencegah peristiwa tertentu dinaikkan atau melakukan operasi khusus untuk peristiwa sebelum diteruskan ke penanganan aktivitas. Filter pesan unik untuk utas tertentu.

Untuk mencegah pesan dikirim, value instans parameter yang Anda berikan ke metode ini harus mengambil alih PreFilterMessage metode dengan kode untuk menangani pesan. Metode harus mengembalikan false.

Perhatian

Menambahkan filter pesan ke pompa pesan untuk aplikasi dapat menurunkan performa.

Berlaku untuk