【问题标题】:.NET CF on Windows CE - problem with filtering system messagesWindows CE 上的 .NET CF - 过滤系统消息的问题
【发布时间】:2011-01-10 15:50:34
【问题描述】:

我正在尝试获取所有告诉用户已触摸屏幕的 Windows 消息。当它被禁用时,它可以在任何地方工作,除了按钮。单击禁用控件时,应用程序似乎没有收到任何消息。

我正在使用 OpenNetCF Application2 类来过滤消息:

Application2.AddMessageFilter(Device.PowerManager);
Application2.Run(new MainForm());

PowerManager 类包含以下方法(根据 IMessageFilter 接口的要求):

    public bool PreFilterMessage(ref Microsoft.WindowsCE.Forms.Message m)
    {
        log.DebugFormat("windows message {0} - 0x{0:X}", m.Msg);
        if (m.Msg == 0x0201 || m.Msg == 0x8001 || m.Msg == 0x0005)
        {                
            return this.ResetPowerManager();       
        }

        return false;
    }

在日志文件中,当单击禁用按钮时,没有显示 Windows 消息。 我想知道这怎么可能,我怎样才能得到这个消息。

【问题讨论】:

    标签: .net compact-framework windows-ce windows-messages


    【解决方案1】:

    对于这种情况,可以使用 Win32 API 函数SetCapture。您可以将主窗体的句柄传递给它,它会捕获所有鼠标事件,直到您调用 ReleaseCapture

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      相关资源
      最近更新 更多