【问题标题】:Windows Mobile 6.5 Gestures and C# 2.0 ApplicationWindows Mobile 6.5 手势和 C# 2.0 应用程序
【发布时间】:2009-09-29 22:37:04
【问题描述】:

我正在寻找有关在 C# 2.0 应用程序中处理 WM 6.5 手势的建议。目前,平移和滚动之类的东西正在干扰 Tab Control 和列表视图等控件。

有没有办法使用 C# 2.0 捕捉并处理它们?我一直在查看 MSDN 包装器等,但它们是使用 .Net 3.5 构建的,无法与我的应用程序一起使用,而且我不断收到错误。

提前感谢您的帮助,

莫里斯

【问题讨论】:

    标签: c# windows compact-framework mobile gestures


    【解决方案1】:

    【讨论】:

    • 我通读了这篇文章并使用 OpenNetCF 捕捉手势并在整个应用程序中禁用它们,这似乎是完成我需要的最佳方式。感谢您的帮助!
    • @MorrisIgn,您可以展示一下您是如何做到的吗?我正在使用 OpenNetCF 的 NativeWindow 并覆盖 WndProc 并试图拦截 WM_GESTURE,但到目前为止还没有运气。任何提示将不胜感激。
    【解决方案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);
    }
    

    您也可以尝试仅对一个窗口禁用手势。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2011-03-18
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 2018-05-05
      • 2013-06-24
      相关资源
      最近更新 更多