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