如何在WPF中接收WM_LBUTTONDBLCLK消息?

时间:2018-03-02 02:56:32

标签: wpf

我想在WPF应用程序中处理WM_LBUTTONDBLCLK消息。 这是我的代码:

public MainWindow()
    {
        InitializeComponent();
        ComponentDispatcher.ThreadFilterMessage += ComponentDispatcher_ThreadFilterMessage;
        this.Loaded += MainWindow_Loaded;
    }
    private void ComponentDispatcher_ThreadFilterMessage(ref MSG msg, ref bool handled)
    {
        if (msg.message == 0x0203)//WM_LBUTTONDBLCLK message
        {
            //do something
        }
    }

但我无法收到WM_LBUTTONDBLCLK(0x0203)消息。在这个链接(https://msdn.microsoft.com/en-us/library/windows/desktop/ms645606(v=vs.85).aspx)中,我知道了

  

只有具有CS_DBLCLKS样式的窗口才能接收WM_LBUTTONDBLCLK消息

我不知道如何在WPF窗口中设置CS_DBLCLKS样式。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

到目前为止,无法找到在wpf中设置此样式的方法。但我用另一种方式解决了。

计算两条WM_LBUTTONDBCLK邮件的时差,如果时间跨度大于DoubleClickTime(得到GetDoubleClickTime())则不执行任何操作。