设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 沉影不器
打印 上一主题 下一主题

[RMVX发布] [vx]鼠标系统 1楼无DLLl,2楼依赖DLL(2010-09-23更新)

  [复制链接]

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
11
发表于 2010-9-7 00:56:22 | 显示全部楼层
回复 沉影不器 的帖子

1、操作系统弹性处理的吧,资源不紧张的情况下会发送两个间隔很短的 120 消息,如果紧张可能就会合并为一个 240 的

2、应该是滚动一点就发送一个距离很小的消息,累积应该是用户代码进行的。120 只是自己定的一个界限,这个界限越小,滚动滚轮和实际效果的时间差就越小,也就是滚动效果越平滑。我记得 Mac 鼠标好像就没有刻痕,浏览网页的时候滚动十分平滑,但用在 RM 里移动光标的话,没有平滑可言,只有一次的滚动尺度,120 应该比较合理

点评

1.很可能是定时器在解析滚轮..2.不知道系统怎么处理120以下的消息?感觉没滚满120就没效果.  发表于 2010-9-7 21:09
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
12
发表于 2010-9-7 23:21:18 | 显示全部楼层
1.很可能是定时器在解析滚轮..2.不知道系统怎么处理120以下的消息?感觉没滚满120就没效果.
沉影不器 发表于 2010-9-7 21:14

1、应该是有一个定时器;
2、这个要找一个没有刻痕的鼠标测试才行,资源短缺中
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
13
发表于 2010-9-13 07:06:53 | 显示全部楼层
感觉所有消息都用状态判断怪怪的,突发性事件还是通过给每个场景分配一个 Proc 实现回调机制吧……(特指滚轮和 WM_*BUTTONUP)

柳柳的问题可能是这样:
每处理一个消息都会调用一次 DLL 里的窗口过程函数,所谓“每个”是指每次 SendMessage 或消息循环内部的 DispatchMessage 的调用。当 Graphics.update 调用时,Ruby 解释器的线程就把执行权让给了消息循环所在的线程,开始进行消息循环,而太快结束的鼠标按下和弹起过程,可能在 Graphics.update 返回之前就处理完了,而这时状态已经由 0 变为 1 又变回了 0,所以虽然点击了鼠标却没有响应,因为返回到 Ruby 层的时候状态已经是 0
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
14
发表于 2010-9-16 05:57:17 | 显示全部楼层
本帖最后由 紫苏 于 2010-9-16 05:59 编辑

回复 沉影不器 的帖子

http://msdn.microsoft.com/en-us/library/aa931259.aspx
(虽然是 CE 的,但应该和 NT 没区别,没测试……)

up 似乎是有的,只是第三步的 down 换成了dbclk,那在处理这个消息时也让 down 状态过渡到 1 就好了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
15
发表于 2010-9-18 05:53:22 | 显示全部楼层
回复 沉影不器 的帖子

就是把 dbclk 处理为双击事件的同时也当做 down 处理,让 down 的状态变为 1

这篇文章应该是用于 .NET 的,不过确实和 CE 那篇描述的没有出入
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-15 07:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表