6783|21

57

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于mouse move 消息的问题 [复制链接]

在  ce平台下开发手写输入的时候,需要用到mouse move 消息。

我是这样做的:当接收到鼠标移动消息的时候,将坐标保存起来,然后根据保存起来的点去画笔画(也就是鼠标移动的轨迹)

但发现在部分机器上有“飞笔”和缺笔的 现象。

我的理解是机器触摸屏不够灵敏,导致有时候收不到mouse move消息,或者是机器刷新屏幕慢

大家给点建议,我该如何改进我的程序,才能使“手写”比较流畅。

或者给点意见什么原因会导致“飞笔”和缺笔的 现象。

谢谢

最新回复

风雨飘摇说的方法我查了 下资料,,回头试试,也许真的可以,谢谢啦  详情 回复 发表于 2008-11-23 14:53
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
哦,没人、
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
也有这方面的疑问啊!想实现IPHONE那样的操作界面,但没想到好方法!!!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
我的触摸屏驱动中有个可以设置采样取点范围的函数

以前用一个叫“马兰花”的手写软件就会出现类似你的现象,只是我们把它解释为“反应慢”
后来我们把校准点由三个变成一个,操作手写软件就变快了,可是又发现触摸屏校准功能似乎消失了

最后找到这个函数,把范围变大,同时在AD采样时把采样间隔时间变小就解决问题了

希望你的问题也可以解决!
仅给你提个意见
你得自己慢慢试
祝你好运!
Amen !
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
我感觉是刷新屏幕慢,而鼠标移动消息的时间间隔太长,才会这样,因为当手写速度快的时候,缺笔才更严重。

有没有办法设置鼠标移动消息的时间间隔
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

6
 
总感觉人很少
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 
没人
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
触摸屏驱动里,当触笔点下以后,采集的频率是由定时器控制的,把定时器时间设短一点,采集的点就会多.
发出的MouseMove消息也会变多.
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

9
 
有没有给应用程序用的api来设置频率,我不是做驱动的,我是做应用开发的。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

10
 
遇到同样的问题,没有API可以解决这个问题,要改只能在驱动里把定时器的时间间隔改小些,让采样的频率加快
非要在应用程序里做的话可以自己写一下判断,缺笔的地方,两点没连的,可以在MouseMove里判断一下x的差距,差距大的就自动连上,飞笔就得自己琢磨了。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

11
 
3楼意见很好。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

12
 
缺笔的问题其实就是实现平滑移动的问题,你既然知道了起点和终点,为什么不自动把缺的点补上,当点跳跃的时候画条线就行了。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

13
 
我把mousemove 里的点都记录下来了,本来不应该缺笔啊。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

14
 
哦哦
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

15
 
建议,把MOUSEDOWN和MOUSEUP的事件都记下来,如果时间足够短的话就也认为是MOUSEMOVE的效果,我试过,如果时间很短,而且滑动距离不长的话,系统不会传MOUSEMOVE给你的。
 
 
 

回复

45

帖子

0

TA的资源

禁止发言

16
 
过来学习。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

17
 
MOUSEDOWN记录下来了,也没用的,关键是mousemove
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

18
 
我的手写算法在大多数机器上是没问题的,关键是有些机器可能是触摸驱动做的不够好,大家想想办法,看看有没可能通过改善算法来解决“缺笔”和飞笔问题
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

19
 
哦哦】,大家发表点意见

 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

20
 
mousemove这个函数应该是WM_MOUSEMOVE消息的相应函数吧,并不是说响应一次就是得到一个点,

This function retrieves points, associated with WM_LBUTTONDOWN and WM_MOUSEMOVE messages, that the OS typically discards when an application cannot process these messages as fast as the application receives these messages.

BOOL WINAPI GetMouseMovePoints(
PPOINT pptBuf,
UINT nBufPoints,
UINT* pnPointsRetrieved
);
用这个函数你可以获取更多的点,这样也可以使得你的程序笔画比较细腻。
以前我也处理过输入法的问题,但是我还没有使用到这个函数就可以完成。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表