6月8日
把Ogre3D放到MFC的视图中去其实很简单,但是还是有一个小问题说不定要花上一点时间去解决:OIS创建输入对象时抛出异常。这个问题当时花了我一个上午才解决。今天在gamers论坛上看到有人在问,然后就给他回复了一下。
神秘的猫 Exp:49
 侦察兵
|
OGRE放到mfc里面捕捉不到鼠标?
OIS总是获取设备失败,然后我就把mfc的鼠标键盘消息截获了再发给OGRE窗口
新问题是,OGRE里面的鼠标光标位置和真实的光标位置不一样!就是有2个光标..咋办?
|
|
Leeman Exp:7
 新成员
|
Re:OGRE放到mfc里面捕捉不到鼠标?
呵呵,MFC中OIS createInputObject 失败这个问题我以前碰到过 跟踪到OIS的代码里,发现是因为OIS调用IDirectInputDevice8::SetCooperativeLevel时失败所置(返回E_HANDLE)。查了一下MSDN,发现SetCooperativeLevel的hWnd参数必须是一个valid 的top level window的句柄! 把传给OIS的"WINDOW"参数改成 StringConverter::toString((unsigned long)AfxGetMainWnd()->GetSafeHwnd())就OK了 (原来我用的是view的wnd的handle)!
所以,根本没有必要把mfc的鼠标键盘消息截获了再发给OGRE窗口
| |
6月6日
今天把Ogre做成了ActiveX控件,这样就可以在网页中使用3D啦
效果图: