Windows Mobile 6.5手势和C# 2.0应用程序

5

我希望能够得到一些关于在C# 2.0应用程序中处理WM 6.5手势的建议。目前,像平移和滚动这样的手势正在干扰诸如选项卡控件和列表视图之类的控件。

是否有一种方法可以使用C# 2.0来捕获并处理这些手势呢?我一直在研究MSDN包装器等内容,但这些都是使用.Net 3.5构建的,无法与我的应用程序兼容,而且我不断收到错误提示。

提前感谢您的帮助,

Morris

2个回答

2
为什么不使用来自coredll.dll的“DisableGestures”功能?
[DllImport("coredll.dll")]
private static extern bool DisableGestures(IntPtr p_ipHwnd, UInt64 p_uiTGFflags, uint p_uiScope);

private const UInt64 TGF_GID_BEGIN        = 0x0000000000000002;
private const UInt64 TGF_GID_END          = 0x0000000000000008;
private const UInt64 TGF_GID_PAN          = 0x0000000000000100;
private const UInt64 TGF_GID_ROTATE       = 0x0000000000000200;
private const UInt64 TGF_GID_SCROLL       = 0x0000000000001000;
private const UInt64 TGF_GID_HOLD         = 0x0000000000002000;
private const UInt64 TGF_GID_SELECT       = 0x0000000000004000;
private const UInt64 TGF_GID_DOUBLESELECT = 0x0000000000008000;
private const UInt64 TGF_GID_LAST         = 0x0000000000008000;
private const UInt64 TGF_GID_MAX          = 0x8000000000000000;
private const UInt64 TGF_GID_ALL          = 0xFFFFFFFFFFFFFFFF;

private const uint TGF_SCOPE_WINDOW  = 0x0000;
private const uint TGF_SCOPE_PROCESS = 0x0001;

public frmMain()
{
  InitializeComponent();

  DisableGestures(null, TGF_GID_ALL, TGF_SCOPE_PROCESS);
}

您还可以尝试仅禁用一个窗口的手势。

2

我仔细阅读了这篇内容,并使用OpenNetCF来捕获手势并在整个应用程序中禁用它们,这似乎是实现我所需的最佳方式。感谢您的帮助! - Morrislgn
@MorrisIgn,您能否展示一下您是如何做到的吗?我正在使用OpenNetCF的NativeWindow并覆盖WndProc并尝试拦截WM_GESTURE,但迄今为止没有成功。非常感谢任何提示。 - Andreas Paulsson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接