当前位置: 首页 > news >正文

个人网站开发要多久定制西装

个人网站开发要多久,定制西装,互联网营销策略有哪些,app设计策划书在开发绘图应用程序时#xff0c;经常会需要读取笔设备的数据#xff0c;通过对笔数据的解析#xff0c;来判断笔的坐标#xff0c;粗细。如果仅仅只是读取鼠标的坐标#xff0c;就需要人为在应用程序端去修改笔的粗细#xff0c;并且使用体验不好#xff0c;如果可以实…        在开发绘图应用程序时经常会需要读取笔设备的数据通过对笔数据的解析来判断笔的坐标粗细。如果仅仅只是读取鼠标的坐标就需要人为在应用程序端去修改笔的粗细并且使用体验不好如果可以实时获取到触摸屏的笔数据的话就可以大大提高体验感。 获取USB-HID设备的数据有多种方式 使用Raw Input API使用Windows底层库如Windows APIWindows HID API使用第三方库如hidapi,libusb等等 本博文主要分析Raw Input API的操作,官网解析地址https://learn.microsoft.com/en-us/windows/win32/inputdev/about-raw-input 从官网的概述可以知道Raw Input API为应用程序提供了一种稳定而可靠的方式可以接受来自任何 HID包括键盘和鼠标的原始输入。 并且具有这些优点。 Qt使用Raw Input API具体步骤 注册原始输入重写nativeEvent函数执行原始输入的标准读取 解析截自官网 1.注册原始输入 为了注册设备应用程序首先创建 一个 RAWINPUTDEVICE 结构的数组这些结构为所需的设备指定 顶级集合 (TLC) 。 TLC 由“使用情况页”定义 (设备) 类 (设备) 。 例如若要获取键盘 TLC请设置 UsagePage 0x01 和 UsageID 0x06。 应用程序调用 RegisterRawInputDevices 来注册设备。 请注意应用程序可以注册当前未附加到系统的设备。 附加此设备后Windows 管理器将自动将原始输入发送到应用程序。 若要获取系统上的原始输入设备列表应用程序会调用 GetRawInputDeviceList。 应用程序使用此调用中的 hDevice 调用 GetRawInputDeviceInfo 以获取设备信息。 TCL: Usage Page HID usages are organized into usage pages of related controls. A specific control usage is defined by its usage page, a usage ID, a name, and a description. A usage page value is a 16-bit unsigned value. Examples of usage pages include: Expand table Page IDPage Namehidusage.h constant0x01Generic Desktop ControlsHID_USAGE_PAGE_GENERIC0x05Game ControlsHID_USAGE_PAGE_GAME0x08LEDsHID_USAGE_PAGE_LED0x09ButtonHID_USAGE_PAGE_BUTTON Usage ID In the context of a usage page, a valid usage identifier, or usage ID, indicates a usage in a usage page. A usage ID of zero is reserved. A usage ID value is an unsigned 16-bit value. Examples of controls that are listed on the Generic Desktop Controls usage page: Expand table Usage IDUsage Namehidusage.h constant0x01PointerHID_USAGE_GENERIC_POINTER0x02MouseHID_USAGE_GENERIC_MOUSE0x04JoystickHID_USAGE_GENERIC_JOYSTICK0x05Game PadHID_USAGE_GENERIC_GAMEPAD0x06KeyboardHID_USAGE_GENERIC_KEYBOARD0x07KeypadHID_USAGE_GENERIC_KEYPAD0x08Multi-axis ControllerHID_USAGE_GENERIC_MULTI_AXIS_CONTROLLER bool Dialog::RegisitWindow(HWND hwnd) {if ( nullptr hwnd ){return FALSE;}RAWINPUTDEVICE rid[1];rid[0].usUsagePage 0x0D;rid[0].usUsage 0x02; // 笔设备rid[0].dwFlags RIDEV_INPUTSINK;rid[0].hwndTarget hwnd;if (!RegisterRawInputDevices(rid, 1, sizeof(rid[0]))){return FALSE;}return TRUE; } 2.重写nativeEvent函数 bool Dialog::nativeEvent(const QByteArray eventType, void *message, long *result) {} 3.执行原始输入的标准读取 应用程序从任何 HID 接收原始输入其 顶级集合 (TLC) 与注册中的 TLC 匹配。 当应用程序收到原始输入时其消息队列将获取 WM_INPUT 消息 并且队列 状态标志QS_RAWINPUT设置为 (QS_INPUT 还包括此标志) 。 应用程序在前台和后台时可以接收数据。 有两种方法可以读取原始数据无缓冲 (或标准) 方法和缓冲方法。 无缓冲区方法一次获取一个 RAWINPUT 结构的原始数据并且足以用于许多 HID。 在这里应用程序调用 GetMessage 以获取 WM_INPUT 消息。 然后应用程序使用包含在 WM_INPUT 中的 RAWINPUT 句柄调用 GetRawInputData。 有关示例请参阅 执行原始输入的标准读取。 相比之下缓冲方法一次获取 RAWINPUT 结构的数组。 这是为可以生成大量原始输入的设备提供的。 在此方法中应用程序调用 GetRawInputBuffer 来获取 RAWINPUT 结构的数组。 请注意 NEXTRAWINPUTBLOCK 宏用于遍历 RAWINPUT 结构的数组。 有关示例请参阅 执行原始输入的缓冲读取。 若要解释原始输入需要有关 HID 的详细信息。 应用程序通过使用设备句柄调用 GetRawInputDeviceInfo 来获取设备信息。 此句柄可以来自 WM_INPUT也可以来自 RAWINPUTHEADER 的 hDevice 成员。 bool Dialog::nativeEvent(const QByteArray eventType, void *message, long *result) {MSG* msg (MSG*)message;LPBYTE lpb;RAWINPUT* raw;UINT dwSize;if(msg-message WM_INPUT){GetRawInputData((HRAWINPUT)msg-lParam, RID_INPUT, nullptr, dwSize, sizeof(RAWINPUTHEADER));lpb new BYTE[dwSize];if (lpb nullptr) {qDebug() 内存分配失败。;return false;}if (GetRawInputData((HRAWINPUT)msg-lParam, RID_INPUT, lpb, dwSize, sizeof(RAWINPUTHEADER)) ! dwSize) {qDebug() GetRawInputData 返回的大小不正确;delete[] lpb;return false;}raw (RAWINPUT*)lpb;if (raw-header.dwType RIM_TYPEHID) {qDebug() 接收到 HID 输入。;//在这里可以使用raw-data.hid.bRawData解析数据。}delete[] lpb;}return false; }
http://www.hkea.cn/news/14391954/

相关文章:

  • 网站浮动广告怎么做帝国cms手机网站
  • 长沙网站建设电话html5开发手机网站教程
  • 芒果tv网站建设的目标wordpress 钛媒体
  • 密云区免费网站建设宁波产品网站设计模板
  • 昆明岭蓝网站建设公司装修网站大全
  • 为什么php做不了大网站兴扬汽车网站谁做的
  • 网站设计流程详细步骤个人网站建设开题报告
  • 深圳自定义网站开发南开做网站
  • 数据分析网站开发福州志愿者官方网站怎么做
  • 网站开发公司资质wordpress site-name
  • 网站中弹出广告怎么做的网站建设div ass
  • 西安旅游网站建设梧州市建设局网站
  • 公司网站被百度转码了为什么wordpress安装成了英文版
  • 网站升级通知自动跳跃wordpress个人博客前台模板下载
  • 吉林省住房和城乡建设部网站做跨境电商需要多少钱
  • 做网站还是app省钱企业网站建设公司电话成都
  • 泉州做网站价格如何做繁体字网站
  • 无锡市做网站什么是展示型网站建设
  • 物流网站怎么做青岛胶东建设国际机场网站
  • 数码电子产品网站名称营销网站开发找哪家
  • 网站建设及网站推广企业网站的建设公司
  • 找别人做网站一般注意什么网站开发费用一般是多少
  • 人人设计网官方网站上海发布公众号下载安装
  • 网站开始开发阶段的主要流程昌平电子网站建设
  • 网站后台怎么修改密码wordpress音乐站
  • 网站建设 标书做一个网站成本要多少钱
  • 汽车网站模版网站做兼容处理怎么设置
  • asp网站怎么做301wordpress主题 移动端
  • 游戏网站建设平台十大网络舆情案例
  • 购物网站源代码营销型网站优势