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);
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ı TestMessageFilter
bir 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.