如何在 Delphi 中为 Microsoft 的 Surface Pen 编程?

Posted

技术标签:

【中文标题】如何在 Delphi 中为 Microsoft 的 Surface Pen 编程?【英文标题】:How To Program in Delphi for Microsoft's Surface Pen? 【发布时间】:2016-05-09 06:53:36 【问题描述】:

我想将 Surface Pen 功能集成到我的应用程序中。它是使用 Delphi 10 Seattle 编写的。我在网上搜索了所有内容,但找不到任何东西。

有人知道如何为 Pen 编程吗?具体来说,要捕获压力级别、落笔、上笔和笔移动事件。

【问题讨论】:

这是如何使用 MS 工具完成的? 没有在 Delphi 中尝试过任何这些,但是您是否尝试过 WinTab 包装器? WinTab API 适用于大多数笔/平板电脑,所以我希望它与 Surface Pen 兼容(?)一个快速的谷歌显示这个link TTablet v1.3.1 可能工作 - (虽然只提到 D5、D6、D7 支持) 可能还有其他 WinTab 包装器? @DavidHeffernan MS 技术很少。我发现 C# 很少,但我需要看更多。我想我可能需要找到一些东西并转换它。 @MattCoubrough 谢谢 - 我会看看。我还应该提到我有兴趣知道是否正在使用橡皮擦和压力。我认为 WinTab 不会有这个;但我还是会看看。 听起来不对。 Surface 是一款 MS 设备。微软提供SDK。 【参考方案1】:

您的应用程序需要处理WM_POINTERUPDATE 消息。

在该消息期间,您可以调用 GetPointerPenInfo 以检索有关指针当前状态的信息作为 POINTER_PEN_INFO structure:

POINTER_PEN_INFO = record
   pointerInfo: POINTER_INFO;
   penFlags: PEN_FLAGS;
   penMask: PEN_MASK;
   pressure: UINT32;
   rotation UINT32;
   tiltX: INT32; 
   tiltY: INT32;
end;

【讨论】:

以上是关于如何在 Delphi 中为 Microsoft 的 Surface Pen 编程?的主要内容,如果未能解决你的问题,请参考以下文章

如何在delphi firemonkey中为floatanimation添加音效?

如何在 Delphi Form Designer 中为自定义组件添加上下文菜单操作?

如何在 Microsoft Teams 中为 @提及创建子组

如何在 Microsoft MakeCode 中为 micro:bit 创建全局变量?

帮助在 Delphi 中为 C 构建一个 Dll

delphi控制台程序输出中文乱码,如何解决?