如何在Windows应用商店应用中检测双击?

时间:2014-04-11 17:35:12

标签: c++ windows-runtime windows-store-apps mouseevent double-click

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

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

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

谢谢。

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

3 个答案:

答案 0 :(得分:1)

这可能是一个糟糕的答案,因为它没有回答这个问题,但从概念上讲,点击是一个事件。双击包含两次点击,分别是两个事件。由于手势由多个这样的事件组成,我们看到双击实际上是一个手势。因此,您可能应该使用手势识别器。

答案 1 :(得分:1)

DoubleTapped上有UIElement个事件。无需使用GestureRecognizer

答案 2 :(得分:1)

使用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;
}