我要发帖 回复

正式会员

2

主题

40

积分

0

专家分

兴趣点(最多三项):

GIS仿真

私信
发表时间 : 2011-10-21 16:18:59 | 浏览 : 2168    评论 : 4

      我在MFC中想实现在帧循环的过程中用MFC新建一个子窗口,这个窗口可以观察场景的一部分。
      现在我在ACF文件中已经建立了这个窗口的vpwindow,但是没和pipeline连接。MFC部分能够正确的建立MFC子窗口。
      问题是:打开MFC窗口之后,在帧循环的endframe之后我把vpwindow和pipeline连接,再把新建的MFC窗口的HWND传给vpwindow,却渲染不上,只是一片白。如果把相同的步骤放到config阶段就可以正确显示两个窗口。
请问这是为什么,应该如何在帧循环中动态的增加删除窗口?

       另外,貌似在MFC下,motionGame的默认键盘控制不响应了,只有鼠标好使,你们有这情况么?

最近VR访客

撒旦狂魔 评论于2011-10-21 16:55:27
关于第一个,我也没搞过;
第二个,你需要重写一下onKeyInput(vrWindow::Key key, int mod)这个函数。
撒旦狂魔 评论于2011-10-21 16:56:14
如果那个动态的搞出来了,麻烦说一下你的方法,谢了~~
winnersun专家组 评论于2011-10-24 20:35:56
撒旦狂魔 发表于 2011-10-21 04:56 PM
如果那个动态的搞出来了,麻烦说一下你的方法,谢了~~

看了两天国外的论坛,得到个结论:VP在运行期是不允许真正的动态增加删除窗口的。所以我的解决方法是只对MFC的窗口进行隐藏而不删除,即重载MFC窗口关闭的按钮,从destroy变成showwindow(SW_HIDE)。用显示隐藏来代替创建删除。

第二个是vp的窗口没有获得焦点导致的。在帧循环开始前要用::setfocus(vpwin.getwindow())来让VP的窗口获得焦点。
yixiaowusheng 评论于2011-10-27 23:18:35
楼主 我前两个月做一个项目 也需要用到窗口切换功能  我也是通过showwindow()函数来显示/隐藏窗口实现的。
另外有个问题,MFC子窗口上面的关闭按钮怎么去掉? 我的程序关闭时须先关闭主窗口 如果先关闭MFC子窗口会弹出一个错误提示。

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2022-8-17 09:33 AM

返回顶部