如何在 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 中为 @提及创建子组