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 参数实例必须用处理该消息的代码重写 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 安全性

平台

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

请参见

参考

Application 类
Application 成员
System.Windows.Forms 命名空间