Application.AddMessageFilter 메서드
Windows 메시지가 대상 위치로 라우팅될 때 해당 메시지를 모니터링하기 위해 메시지 필터를 추가합니다.
네임스페이스: System.Windows.Forms
어셈블리: System.Windows.Forms(system.windows.forms.dll)
구문
‘선언
Public Shared Sub AddMessageFilter ( _
value As IMessageFilter _
)
‘사용 방법
Dim value As IMessageFilter
Application.AddMessageFilter(value)
public static void AddMessageFilter (
IMessageFilter value
)
public:
static void AddMessageFilter (
IMessageFilter^ value
)
public static void AddMessageFilter (
IMessageFilter value
)
public static function AddMessageFilter (
value : IMessageFilter
)
매개 변수
- value
설치하려는 IMessageFilter 인터페이스를 구현한 것입니다.
설명
특정 이벤트가 발생하지 않도록 하거나 이벤트가 이벤트 처리기로 전달되기 전에 이벤트에 대한 특수 작업을 수행하려면 메시지 필터를 사용합니다. 메시지 필터는 스레드마다 고유합니다.
메시지가 디스패치되지 않도록 하려면 이 메서드에 전달한 value 매개 변수 인스턴스가 PreFilterMessage 메서드를 메시지를 처리하기 위한 코드로 재정의해야 합니다. 해당 메서드는 false를 반환해야 합니다.
경고
응용 프로그램에 대한 메시지 펌프에 메시지 필터를 추가하면 성능이 저하될 수 있습니다.
예제
다음 코드 예제에서는 TestMessageFilter
라는 메시지 필터를 만듭니다. 이 필터는 왼쪽 마우스 단추와 관련된 모든 메시지를 차단합니다. 메시지 필터를 사용하려면 먼저 IMessageFilter 인터페이스에 대한 구현을 제공해야 합니다.
// Creates a message filter.
public class TestMessageFilter implements IMessageFilter
{
/** @attribute SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)
*/
public boolean PreFilterMessage(
/**@ref
*/
Message m)
{
// Blocks all the messages relating to the left mouse button.
if (m.get_Msg() >= 513 && m.get_Msg() <= 515) {
Console.WriteLine("Processing the messages : " + m.get_Msg());
return true;
}
return false;
} //PreFilterMessage
} //TestMessageFilter
.NET Framework 보안
- SecurityPermission 직접 실행 호출자가 비관리 코드를 호출하는 데 필요한 권한입니다. 연관된 열거형: SecurityPermissionFlag.UnmanagedCode
플랫폼
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
2.0, 1.1, 1.0에서 지원