把Ogre log输出到CBCGPDockingControlBar

1.定义类继承自CBCGPDockingControlBar和Ogre::LogListener

class COutputBar : public CBCGPDockingControlBar, public Ogre::LogListener

2.重载Ogre::LogListener的messageLogged方法

CListBox m_wndList;

void COutputBar::messageLogged( const String& message, LogMessageLevel lml, bool maskDebug, const String &logName )

{
 m_wndList.AddString(message.c_str());
 m_wndList.SetCurSel(m_nCount++);
}

3.在从CBCGPDockingControlBar继承的OnCreate函数里把自己添加到log的listener里

LogManager::getSingleton().getDefaultLog()->addListener(this);

4.在析构函数里把自己移除

LogManager::getSingleton().getDefaultLog()->removeListener(this);

posted @ 2009-02-12 16:30  邓炜  阅读(605)  评论(0)    收藏  举报