如何在WPF中接收WM_LBUTTONDBLCLK消息?

问题描述 投票:1回答:1

我想在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样式。有人可以帮忙吗?

wpf
1个回答
1
投票

到目前为止,找不到在wpf中设置此样式的方法。但我以另一种方式解决了。 计算两条WM_LBUTTONDBCLK消息的时差,如果时间跨度大于DoubleClickTime(由GetDoubleClickTime()获取)则不执行任何操作。

© www.soinside.com 2019 - 2024. All rights reserved.