理铭 的个人资料阿闷的共享空间照片日志列表更多 工具 帮助

日志


6月8日

关于Ogre3D在MFC中的问题

把Ogre3D放到MFC的视图中去其实很简单,但是还是有一个小问题说不定要花上一点时间去解决:OIS创建输入对象时抛出异常。这个问题当时花了我一个上午才解决。今天在gamers论坛上看到有人在问,然后就给他回复了一下。
神秘的猫
Exp:49

侦察兵
 发表于: 2007-6-7 22:54:00

博客 | 档案 | 短信 | 树状 | 收藏 | 编辑 | 删除 | 引用   


OGRE放到mfc里面捕捉不到鼠标?

OIS总是获取设备失败,然后我就把mfc的鼠标键盘消息截获了再发给OGRE窗口

新问题是,OGRE里面的鼠标光标位置和真实的光标位置不一样!就是有2个光标..咋办?

 注册: 2005-4    状态: Offline 1   Top
Leeman
Exp:7

新成员
 发表于: 2007-6-8 13:02:00

博客 | 档案 | 主页 | 短信 | 树状 | 收藏 | 编辑 | 删除 | 引用   


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控件

今天把Ogre做成了ActiveX控件,这样就可以在网页中使用3D啦
效果图: