如何检测 Windows Store 应用程序中的双击?

Dea*_*con 5 c++ double-click mouseevent windows-runtime windows-store-apps

在 C++ Windows Store 应用程序中,主窗口上有一个名为PointerPressed的事件。我试图找到如何检测双击而不是单击。我没有看到PointerPressed的等效事件会在鼠标双击时触发。

我还检查了PointerPressed事件参数,它似乎不包含有关它是单击还是双击的信息。

使用GestureRecognizer上的DoubleTapped属性很容易执行它,但是如果我不使用手势识别器怎么办?有没有办法检测简单的鼠标双击???

谢谢你。

编辑:它是针对 Windows 应用商店的纯 C++ Direct3D 应用程序,不使用 XAML 或任何类似的用户界面。

Dea*_*con 2

利用 Pointer.Timestamp 属性,检查自上次收到鼠标按下事件以来的时间是否小于或等于双击时间。

这是伪代码:

static unsigned long long LastTimestamp = 0;
static unsigned long long DoubleClickTimeMS = 250;
if( event == mouse_down )
{
    if( (Pointer->Timestamp - LastTimestamp) / 1000 <= DoubleClickTimeMS )
    {
        //switch event for a double-click
        event = double_click;
    }
    LastTimestamp = Pointer->Timestamp;
}
Run Code Online (Sandbox Code Playgroud)