半成品也纪念一下

半成品也纪念一下_第1张图片

 

 

折腾了半天,终于把MFC+OGRE+ETM+CEGUI整合起来了

本来想加OIS的,结果OIS加载的代码有问题,手头上也没OIS相关教程,只好先去掉OIS了,可能跟MFC冲突==》句柄错误

奇了怪了,FPS低得出奇 得找找原因==》加上定时刷屏即可,注意清除背景绘制,否则屏幕抖动剧烈

OIS createInputObject 失败原因:

OIS需要 根窗口的句柄来处理

 

unsigned long h = (unsigned long)AfxGetMainWnd()->GetSafeHwnd(); //获得根窗口句柄
pl.insert(std::make_pair(std::string("WINDOW"), StringConverter::toString(h));

mInputManager = OIS::InputManager::createInputSystem( pl );

半成品也纪念一下_第2张图片

 

非常遗憾的是,OIS加入后,由于OIS需要根窗口的句柄来处理,所以OIS截获了窗口中所有的消息,使MFC中的消息系统失效了,菜单、停靠栏、工具栏全都接收不到消息,鼠标只在VIEW中能够移动...这个问题似乎还没有解决办法,也许是我没找到;

如果OIS使用了钩子来截获鼠标、键盘消息,而经过OIS处理消息后,没传给MFC中的钩子,那么可以通过修改OIS代码中钩子处理函数,将消息后传也许就可以了,没看过OIS代码,瞎猜...

 

 

 

 

你可能感兴趣的:(半成品也纪念一下)