如何解决了解哪些显示器在 Windows 10 上具有触控功能
我有一个在 Windows 10 上运行的双显示器设置,我的辅助显示器是触摸屏。我可以用 EnumDisplayMonitors
检测到两台显示器,并发现有一个带有 GetSystemMetrics(SM_DIGITIZER)
的数字转换器。我希望我的应用程序窗口在触摸屏上打开,但我找不到任何告诉我数字化仪“属于”哪个显示器的功能。
在没有解决方案的情况下,我想我可以有一个启动序列,在此期间用户被要求点击触摸屏,然后我的代码可以将窗口移动到相应的监视器。我只是希望它比那更光滑。
有什么想法吗?
解决方法
GetPointerDevices function 为您提供该信息。 POINTER_DEVICE_INFO 在同一结构中包含监视器句柄和设备指针类型:
typedef struct tagPOINTER_DEVICE_INFO {
DWORD displayOrientation;
HANDLE device;
POINTER_DEVICE_TYPE pointerDeviceType; // can be POINTER_DEVICE_TYPE_TOUCH see below
HMONITOR monitor; // Monitor handle
ULONG startingCursorId;
USHORT maxActiveContacts;
WCHAR productString[POINTER_DEVICE_PRODUCT_STRING_MAX];
} POINTER_DEVICE_INFO;
typedef enum tagPOINTER_DEVICE_TYPE {
POINTER_DEVICE_TYPE_INTEGRATED_PEN,POINTER_DEVICE_TYPE_EXTERNAL_PEN,POINTER_DEVICE_TYPE_TOUCH,POINTER_DEVICE_TYPE_TOUCH_PAD,POINTER_DEVICE_TYPE_MAX
} POINTER_DEVICE_TYPE;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。