了解Windows 10上具有触摸功能的显示器



我有一个在Windows 10上运行的双显示器设置,我的辅助显示器是一个触摸屏。我可以用EnumDisplayMonitors检测两个监视器,并发现GetSystemMetrics(SM_DIGITIZER)有一个数字化仪。我想在触摸显示器上打开我的应用程序窗口,但我找不到任何功能,告诉我哪个显示器是数字化仪";属于";至.

在没有解决方案的情况下,我想我可以有一个启动序列,在这个序列中,用户被要求点击触摸屏,然后我的代码可以将窗口移动到相应的监视器。我只希望它比那更光滑。

有什么想法吗?

GetPointerDevices函数会为您提供这些信息。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;

最新更新