查看: 2030|回复: 4

GUIEventAdapter的问题

[复制链接]

该用户从未签到

发表于 2011-5-19 15:33:40 | 显示全部楼层 |阅读模式
我在handle中写了如下代码:
case(osgGA::GUIEventAdapter::RELEASE):
{
    if(ea.getButtonMask()==osgGA::GUIEventAdapter:EFT_MOUSE_BUTTON)
   {
     ......
   }
   else if(ea.getButtonMask()==osgGA::GUIEventAdapter::RIGHT_MOUSE_BUTTON)
   {
         ........
    }
}
运行时并没有进入.....语句,这是为什么?怎么解决?另外MOVE和DRAG有什么区别?我现在想实现鼠标左键按下并移动或者鼠标右键按下并移动,该如何实现?谢谢

该用户从未签到

发表于 2011-5-19 16:03:18 | 显示全部楼层
不应改在RELEASE里面判断吧,按下鼠标是PUSH
MOVE就是移动了,不需要按下鼠标键
DRAG就是按下移动

该用户从未签到

发表于 2011-5-19 17:03:54 | 显示全部楼层
正好我以前也遇到过这个问题,就去mailing list搜索了下,找到如下解释:
the getButtonMask returns the current state of
the mouse, while getButton() returns the actual button related to the
event.

所以 lz应该用ea.getButton(),应该就可以了。

该用户从未签到

发表于 2011-5-19 17:08:20 | 显示全部楼层
unsigned int osgGA::GUIEventAdapter::getButtonMask  (   )  const [inline]

get current mouse button state

该用户从未签到

 楼主| 发表于 2011-5-19 19:11:21 | 显示全部楼层
呵呵谢谢大侠们明天再试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表