查看: 2684|回复: 5

请问如何在GUIEventHandler中响应组合键

[复制链接]

该用户从未签到

发表于 2009-4-10 12:31:30 | 显示全部楼层 |阅读模式
如响应Ctrl+M键消息,
使用 if (ea.getModKeyMask() == MODKEY_CTRL  && ea.getKey() == 'm' ) 似乎无法得到响应

该用户从未签到

发表于 2009-4-10 13:13:59 | 显示全部楼层
我记得是这样的:由于Win32 API的特点,OSG不得不将Ctrl+letter变换到了{1,..,26},也就是说,CTRL+A的getKey()为1,而CTRL+Z的getKey()为26。您可以试验一下

该用户从未签到

 楼主| 发表于 2009-4-10 15:33:00 | 显示全部楼层
确实,CTRL+A~Z被映射到了1~26,SHIFT+A~Z被映射到大写的'A'~'Z',

而ALT+A对应的getKey()仍然是'a',CTRL+1的值仍然是'1',这类情况该怎么处理呢?

该用户从未签到

 楼主| 发表于 2009-4-10 16:04:30 | 显示全部楼层
还有按着CTRL键点击鼠标的消息怎么捕获?
getModKeyMask好像没什么作用呢?

该用户从未签到

发表于 2009-4-10 16:16:16 | 显示全部楼层
getModKeyMask()没有什么问题,只是注意按下多个组合键的时候要使用位操作来区分;还有注意osgviewerQt等例子中并没有编写这些特殊键的获取代码,需要自己编写,基本的osgviewer等全屏程序中应该没有问题

该用户从未签到

 楼主| 发表于 2009-4-10 17:12:39 | 显示全部楼层
OK了  
多谢多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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