我想在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样式。有人可以帮忙吗?
答案 0 :(得分:1)
到目前为止,无法找到在wpf中设置此样式的方法。但我用另一种方式解决了。
计算两条WM_LBUTTONDBCLK
邮件的时差,如果时间跨度大于DoubleClickTime(得到GetDoubleClickTime()
)则不执行任何操作。