Application.AddMessageFilter(IMessageFilter) Yöntem

Tanım

hedeflerine yönlendirilen Windows iletileri izlemek için bir ileti filtresi ekler.

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)

Parametreler

value
IMessageFilter

Yüklemek istediğiniz arabirimin IMessageFilter uygulaması.

Örnekler

Aşağıdaki kod örneği adlı TestMessageFilterbir ileti filtresi oluşturur. Bu filtre, sol fare düğmesiyle ilgili tüm iletileri engeller. İleti filtresi kullanabilmeniz için önce arabirimi için IMessageFilter bir uygulama sağlamanız gerekir.

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

Açıklamalar

Belirli olayların tetiklenmesini önlemek veya bir olay işleyicisine geçirilmeden önce bir olay için özel işlemler gerçekleştirmek için ileti filtresi kullanın. İleti filtreleri belirli bir iş parçacığı için benzersizdir.

Bir iletinin gönderilmesini önlemek için, value bu yönteme geçirdiğiniz parametre örneği, iletiyi işlemek için kodla yöntemini geçersiz kılmalıdır PreFilterMessage . yöntemi döndürmelidir false.

Dikkat

Bir uygulama için ileti pompasına ileti filtreleri eklemek performansı düşürebilir.

Şunlara uygulanır