Application.AddMessageFilter(IMessageFilter) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Windows 메시지가 대상 위치로 라우팅될 때 해당 메시지를 모니터링하기 위해 메시지 필터를 추가합니다.
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)
매개 변수
- value
- IMessageFilter
설치하려는IMessageFilter 인터페이스를 구현한 것입니다.
예제
다음 코드 예제에서는 라는 TestMessageFilter
메시지 필터를 만듭니다. 이 필터는 마우스 왼쪽 단추와 관련된 모든 메시지를 차단합니다. 메시지 필터를 사용하려면 먼저 인터페이스에 대한 구현을 IMessageFilter 제공해야 합니다.
// 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
설명
메시지 필터를 사용하여 특정 이벤트가 발생하지 않도록 방지하거나 이벤트 처리기에 전달되기 전에 이벤트에 대한 특수 작업을 수행합니다. 메시지 필터는 특정 스레드에 고유합니다.
메시지가 디스패치 value
되지 않도록 하려면 이 메서드에 전달하는 매개 변수 인스턴스가 메시지를 처리하는 코드로 메서드를 재정 PreFilterMessage 의해야 합니다. 이 메서드는 false
를 반환해야 합니다.
주의
애플리케이션에 대 한 메시지 펌프에 메시지 필터를 추가 하면 성능이 저하 될 수 있습니다.