CEGUI消息相应
2016-01-19 17:39
447 查看
1.假设我们要响应一个单选按钮的控件,因该想到的必须处理的事件WM_MOUSEMOVE WM_LBUTTONDOWN WM_LBUTTONUP2.为你的单选按钮注册一个事件
class OurPlayer { public: OurPlayer() { RegisterForEvents(); // Call our Register function }; bool Jump(const CEGUI::EventArgs& /*e*/){}; // Jump for joy private: RegisterForEvents() {
//获得按钮对象完成注册 gJumpBtnWindow->subscribeEvent(CEGUI::PushButton::EventClicked,CEGUI::Event::Subscriber(&OurPlayer::Jump,this)); }; }
//注意 subscribeEvent是一个模板函数,所以事件必须写在一个类中(可以试一下把事件写成全局的编译会报错的)
3.对事件进行拦截
case WM_MOUSEMOVE:CEGUI::System::getSingleton().getDefaultGUIContext().injectMousePosition( (float)(LOWORD(lParam)) , (float)(HIWORD(lParam)) ) ;break;case WM_LBUTTONDOWN:CEGUI::System::getSingleton().getDefaultGUIContext().injectMouseButtonDown( CEGUI::LeftButton ) ;break;case WM_LBUTTONUP:CEGUI::System::getSingleton().getDefaultGUIContext().injectMouseButtonUp( CEGUI::LeftButton ) ;break;
//注意
这要放在win32的消息函数里,还有就是WM_MOUSEMOVE这个需要使用injectMousePosition,不能够写injectMouseMove,这样不能响应事件,跟到CEGUI代码里发现无论如何拖动鼠标,position的值都是不正确的
相关文章推荐
- 将java.util.Date类型转换成json时,使用JsonValueProcessor将date转换成希望的类型
- 转载:UI设计师不可不知的安卓屏幕知识(原创文章)
- Xapian :Document、Term和Value
- Codeforce 527D Clique Problem题解
- String 字符串常量,StringBuffer 字符串变量(线程安全),StringBuilder (非线程安全)
- ValueError: Still no compile flags, no completions yet.
- 2016.01.18 UILabel
- GXUI 的认识
- 常用的安卓UI相关的工具集合
- iOS UITableView 左滑删除cell
- 160119UINavigationController使用详解
- FTP(FtpWebRequest/FtpWebResponse) 上传下载
- js模块话开发3::require.js的用法
- 给UILabel设置圆角
- 【HDU】2610 Sequence one
- IOS本地通知:UILocalNotification使用记录
- 借鉴drawable文件夹,values使用dimens控制字体大小、边距大小。适配Android不同机型,不同屏幕
- 1月19号 UIImageView
- MySQL学习10_使用chown更改/var/lib所有者导致Starting MySQL. ERROR! The server quit without updating PID file错误
- iOS UIScrollview 和侧滑手势冲突解决方法