赞 | 2 |
VIP | 143 |
好人卡 | 1 |
积分 | 1 |
经验 | 216792 |
最后登录 | 2019-10-10 |
在线时间 | 24 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 61
- 在线时间
- 24 小时
- 注册时间
- 2008-8-5
- 帖子
- 1924
|
感觉所有消息都用状态判断怪怪的,突发性事件还是通过给每个场景分配一个 Proc 实现回调机制吧……(特指滚轮和 WM_*BUTTONUP)
柳柳的问题可能是这样:
每处理一个消息都会调用一次 DLL 里的窗口过程函数,所谓“每个”是指每次 SendMessage 或消息循环内部的 DispatchMessage 的调用。当 Graphics.update 调用时,Ruby 解释器的线程就把执行权让给了消息循环所在的线程,开始进行消息循环,而太快结束的鼠标按下和弹起过程,可能在 Graphics.update 返回之前就处理完了,而这时状态已经由 0 变为 1 又变回了 0,所以虽然点击了鼠标却没有响应,因为返回到 Ruby 层的时候状态已经是 0 |
|