8715|30

57

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

MouseMove消息异常,请大家帮忙分析原因 [复制链接]

系统:CE5,开发工具:EVC4
用DirectShow开发MP3播放器,功能已经实现。但昨天测试发现一个问题,先描述一下:
播放MP3,触笔点击播放进度条调整播放进度,然后正常播放。此时一切正常!
但是当这首歌播放完毕,自动转到下一首时,出现异常:不是从下一首的开始播放,而是与上次触笔点击调整的点相关。即从下一首的中间某点开始播放!!!

经过一些分析,发现产生的原因竟然是:在转到下一首时,在播放进度区上生产一个MouseMove消息,改变了播放进度。但不知道此MouseMove消息是如何来的?

如果在触笔点击调整播放进度后,再在播放进度区之外任意处点击,转到下一首时也有MouseMove消息产生。但由于不属于播放进度区上的消息,则不影响播放进度(即可以从头开始播放)。

现在不清楚:这个MouseMove消息究竟是如何产生的?

最新回复

可能你用到了一个变量,该变量在mousemove事件中被设置成一定值(滑条长度和歌曲总播放时间的一个换算),这样播放器根据这个值选择从歌曲什么地方开始播放。因此每当“触笔点击播放进度条调整播放进度,然后正常播放”后,就将该变量的值设置成从歌曲头开始播放。你这样做一下看效果。  详情 回复 发表于 2008-10-22 17:16
点赞 关注

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
高手面前不能乱说话啊。
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
>> zzhll 大米粥
>> 我感觉只要你没有对mousemove写程序,系统默认的消息也会产生上述现象吗?

对MouseMove的处理,我有程序啊。例如处理播放进度的显示与调整,还有音量的显示与调整。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
移动就会产生,但实际上你点的时候,虽然只是单击,但也会响应,因为屏有一定的飘移,所以只要碰到屏就会产生,解决方法是:在MOUSEMOVE消息中得到当前的坐标,和你LBUTTONDOWN时保存的坐标做一个差值,绝对值小于一定范围属于飘移,直接跳出响应函数.

http://blog.sina.com.cn/windowsce600
这是我BLOG,有相关文章
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 lyc7898 的回复:
移动就会产生,但实际上你点的时候,虽然只是单击,但也会响应,因为屏有一定的飘移,所以只要碰到屏就会产生,解决方法是:在MOUSEMOVE消息中得到当前的坐标,和你LBUTTONDOWN时保存的坐标做一个差值,绝对值小于一定范围属于飘移,直接跳出响应函数.

http://blog.sina.com.cn/windowsce600
这是我BLOG,有相关文章


牛---顶!
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

6
 
可是我的触笔点击屏幕相对于下一首开始,还有一段时间间隔的。为什么在这期间鼠标消息没有被处理掉?
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 91program 的回复:
可是我的触笔点击屏幕相对于下一首开始,还有一段时间间隔的。为什么在这期间鼠标消息没有被处理掉?


例如一首歌曲有5分钟,我用触笔操作播放进度调节到4分钟,然后开始正常播放。播放结束,自动转入下一首时会在MouseMove消息。
如果是由于调节播放进度时产生的消息,应该早就被CE处理了,不可能等几十秒后啊!

 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

8
 
感觉明显是你的程序的逻辑有问题,调整了进度条,下一首时就按照这个点进行播放,再其他地方点击 就不会出现这个问题,还是某些条件变量改变了,局部的  全局的。。。。猜测。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
我只是想知道,为什么会有MouseMove消息产生?如果没有此消息,则一切正常。

程序的逻辑我也在查,可是暂时还没有找到问题。
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

10
 
估计是不会有MouseMove消息产生,LZ可以设断点试一下,或者在MouseMove里发一个MessageBox测试一下,问题可能是进度条指针指完后没有被销毁,而在播放下一首时直接在那个地方播放了,LZ可以这样测试一下,将上次进度条调节到4分钟,看看下一首播放的时候是不是在4分钟这个地方开始的,如果是这样,再试试将下一首歌改为少于4分钟的,然后看看是不是还有这样的问题。
呵呵,仅供参考
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

11
 
我是在MouseMove中增加了RETAILMSG(),用来输出调试信息的。只要最后一个消息是Mouse Down,歌曲下一首时就会产生MouseMove消息。

具体的时间,与每首歌曲的的长度(百分比)有关,与具体的时间点(如:4分钟)没有关系。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

12
 
也就是进了消息进了队列但是没有被处理?在到下一首的时候会有什么操作呢?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 11 楼 BEYONDMA 的回复:
也就是进了消息进了队列但是没有被处理?在到下一首的时候会有什么操作呢?


可是触笔点击时,已经正确响应了点击消息,程序也做出了正确的响应。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

14
 
看见分多,路过路过。

抛开代码,一般是不会出现灵异事件的。

没有想法。

建议91能否用spy查看一下该控件上的消息。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 3 楼 lyc7898 的回复:
移动就会产生,但实际上你点的时候,虽然只是单击,但也会响应,因为屏有一定的飘移,所以只要碰到屏就会产生,解决方法是:在MOUSEMOVE消息中得到当前的坐标,和你LBUTTONDOWN时保存的坐标做一个差值,绝对值小于一定范围属于飘移,直接跳出响应函数.

http://blog.sina.com.cn/windowsce600
这是我BLOG,有相关文章


lyc有广告的嫌疑。

我没有找到有关资料。

麻烦直接给个链接。
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 14 楼 lenux 的回复:
引用 3 楼 lyc7898 的回复:
移动就会产生,但实际上你点的时候,虽然只是单击,但也会响应,因为屏有一定的飘移,所以只要碰到屏就会产生,解决方法是:在MOUSEMOVE消息中得到当前的坐标,和你LBUTTONDOWN时保存的坐标做一个差值,绝对值小于一定范围属于飘移,直接跳出响应函数.

http://blog.sina.com.cn/windowsce600
这是我BLOG,有相关文章


lyc有广告的嫌疑。

我没有找到有关资料。

麻烦直接给个链接。


我已经在另一个帖子上说了,这个就是来打广告的。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

17
 
哟,还在用EVC4哪。

这问题看起来是代码问题,不像是消息队列被阻塞造成的,因为你上次拖动进度条已经是响应了MouseMove消息,无论如何也不会影响到几分钟之后的事情。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

18
 
是啊,还在用EVC4。
因为有很多的东东都是在它下面的做的,暂时不想用VS2005。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

19
 
91,
如果同一首歌,循环播放也会出现这种问题吗?
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

20
 
引用 18 楼 lenux 的回复:
91,
如果同一首歌,循环播放也会出现这种问题吗?


是的

我有一个朋友也遇到过同样的问题。以前他在京华做的时候,修改TCPMP的进度条时也遇到过。可是他们没有找到解决问题的方法,最后只能将MouseMove的响应消息去掉。唉...

看来问题解决无望了,再等等看。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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