使用wacom数位板配套的笔无法利用按键实现滚动的问题

我的设备: wacom CTL 472

这个问题可能使用多个显示屏的同学(我就是在一个显示屏看老师的直播,想在另一个显示屏做笔记时发现的)比较容易遇到,明明配置好的是滚动为什么却无法滚动呢?

先给解决方法:用电脑的鼠标(此时不要用数位板!!!)在你需要做笔记的页面的中心(注意一定要是你将要书写的区域)点一下应该就可以了

原因可能出在数位板控制时是可以瞬移鼠标的,你以为你的鼠标已经过来了,结果它可能只是鼠标图标过来了然后你可以写写画画,但是可能还有一些东西没有过来(具体是什么我也不知道。。。),我还是折腾了很久的才找到原因,在此记录一下,可能不是只有我一个人遇到这个问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Wacom数字签名需要使用Wintab API,Wintab API是用于与Wacom数位板交互的API,这个API提供了许多函数,用于获取、设置、处理数位板的信息。其中包括数字签名功能的实现。 下面是一个简单的Wacom数字签名代码实现的示例: ```c++ #include <windows.h> #include <wintab.h> // 数字签名数据结构 typedef struct tagSigPoint { LONG x; LONG y; LONG pressure; } SIGPOINT; // 数字签名处理函数 void processSignature(HWND hWnd, HCTX hCtx, SIGPOINT* pSignature, int nCount) { // 在这里进行数字签名的处理,例如保存签名数据到文件中 } // Wintab数字签名主函数 void WintabSignature(HWND hWnd) { AXIS tabletX, tabletY, pressure; HCTX hCtx; UINT maxPkts, pktRate; // 获取Wintab API版本信息 UINT apiVer = ::WTInfo(WTI_INTERFACE, IFC_SPECVERSION, NULL); // 打开数位板上下文 LOGCONTEXT lcMine; BOOL bResult = ::WTGet(WTI_DEFCONTEXT, &lcMine); if (!bResult) { return; } // 设置数位板上下文 lcMine.lcOptions |= CXO_MESSAGES; lcMine.lcOptions |= CXO_SYSTEM; lcMine.lcPktData = PACKETDATA; lcMine.lcPktMode = PACKETMODE; lcMine.lcMoveMask = PACKETDATA; lcMine.lcBtnUpMask = lcMine.lcBtnDnMask; // 打开数位板上下文 hCtx = ::WTCtxOpen(hWnd, &lcMine, TRUE); if (hCtx == NULL) { return; } // 获取数位板坐标轴范围 ::WTInfo(WTI_DEVICES, DVC_X, &tabletX); ::WTInfo(WTI_DEVICES, DVC_Y, &tabletY); ::WTInfo(WTI_DEVICES, DVC_NPRESSURE, &pressure); // 获取最大数据包数量和速率 ::WTInfo(WTI_DEVICES, DVC_PKTRATE, &pktRate); maxPkts = ::WTInfo(WTI_DEVICES, DVC_PKTSIZE, NULL); // 开始捕捉数位板上的数据包 SIGPOINT signature[1024]; int i = 0; int nCount = 0; while (TRUE) { PKT pkt; bResult = ::WTPacket(hCtx, 0, &pkt); if (bResult) { // 将坐标转换为屏幕坐标 signature[i].x = MulDiv(pkt.pkX, GetSystemMetrics(SM_CXSCREEN), tabletX.axMax); signature[i].y = MulDiv(pkt.pkY, GetSystemMetrics(SM_CYSCREEN), tabletY.axMax); signature[i].pressure = MulDiv(pkt.pkNormalPressure, 255, pressure.axMax); // 判断是否为最后一个数据包 if (pkt.pkStatus & PK_END) { nCount = i + 1; break; } i++; if (i > maxPkts) { break; } } } // 处理数字签名数据 processSignature(hWnd, hCtx, signature, nCount); // 关闭数位板上下文 ::WTClose(hCtx); } ``` 在这个示例中,我们使用了Wintab API中的WTGet、WTInfo、WTPacket、WTClose等函数来打开、设置、获取和关闭数位板上下文,并在循环中获取数位板数据包,将其转换为屏幕坐标,并保存到签名数据结构中。最后,我们将签名数据传递给processSignature函数进行处理。 需要注意的是,该示例仅为演示Wacom数字签名的基本实现方式,实际应用中还需要进行更多的处理,例如对签名数据进行加密和验证等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值