游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3209|回复: 3

在windows窗口嵌入ogre时,鼠标不响应的问题

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2009-9-14 14:17:00 | 显示全部楼层 |阅读模式
大家好,
我刚开始学ogre,想用ogre的渲染,显示在一个已经创建好的windows窗口中。网上的例子很多,在实现的过程中遇到了鼠标响应的问题,
代码如下,其实mWnd是已经创建windows窗口的句柄。

   mRoot->initialise( false );

   NamevaluePairList miscParams;
   miscParams["externalWindowHandle"] = StringConverter::toString( ( size_t )mWnd );
   mWindow = mRoot->createRenderWindow( "ogre demo", 640, 480, false, &miscParams );

。。。
   mRoot->addListener(new listerner);

之后分别用两种方法创建渲染循环,
1. 用windows循环调用如下
  void update( void )
   {
     mRoot->_fireFrameStarted();
     mWindow->update();
     mRoot->_fireFrameEnded();
    }
2. 直接在初始化后调用用 mRoot->startRendering();

这两种方法都可以正常显示渲染窗口,并且可以渲染出动画,现在的问题不管哪个方法,是鼠标响应都不正确。渲染窗口内可以通过ogre的listener响应鼠标的消息,不过鼠标一直呈沙漏状的图标, 好像没有空闲,并且一直被ogre占用,响应不了windows的鼠标事件,点击窗口上如最大,最小化,关闭等按钮都没有反应。

是不是在使用外部窗口时,就不能用ogre自己的addListener响应事件了,或者应该如何修改。
希望高人指点,谢谢。

mwolf

31

主题

60

帖子

60

积分

注册会员

Rank: 2

积分
60
发表于 2009-9-21 14:48:00 | 显示全部楼层

Re:在windows窗口嵌入ogre时,鼠标不响应的问题

你解决了吗 ?我是也这个问题 !能给留下联系方式吗

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2009-9-23 09:43:00 | 显示全部楼层

Re:在windows窗口嵌入ogre时,鼠标不响应的问题

没呢,最近在看别的,一直没动,我的qq:948178101

24

主题

256

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
发表于 2009-9-28 14:10:00 | 显示全部楼层

Re:在windows窗口嵌入ogre时,鼠标不响应的问题

OK,既然你用了MFC,就不要要再用ogre的鼠标Listener,直接用MFC的鼠标消息。通过一些接口,把鼠标动作传给OGRE。
void CWaYee3DView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
        // TODO: 在此添加消息处理程序代码和/或调用默认值

        WManipToolsManager::getSingleton().onMouseAction(WaYee::W_MOUSE_LEFT_BUTTON_DOUBLE_CLICK,nFlags,point.x,point.y);
        CView::OnLButtonDblClk(nFlags, point);
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-20 12:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表