Application.AddMessageFilter(IMessageFilter) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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);
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 uygulanması.
Ö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 arabirim 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, iletinin PreFilterMessage işlendiği kodla yöntemini geçersiz kılmalıdır. yöntemi döndürmelidir false.
Caution
Bir uygulamanın ileti pompasına ileti filtreleri eklemek performansı düşürebilir.