CEGUI显示中文的一些细节

在CEGUI中配置中文字体已经没什么困难,

 

为CEGUI的一个文本赋值,必须是uft8类型的字符串,

 

想使用std::string作为输入参数,就必须进行相应的转换,

 

std::wstring s2ws(const std::string& s) { std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C"; setlocale(LC_ALL, "chs"); const char* _Source = s.c_str(); size_t _Dsize = s.size() + 1; wchar_t *_Dest = new wchar_t[_Dsize]; wmemset(_Dest, 0, _Dsize); mbstowcs(_Dest,_Source,_Dsize); std::wstring result = _Dest; delete []_Dest; setlocale(LC_ALL, curLocale.c_str()); return result; }; void ogrecegui1::test5() { using namespace CEGUI; WindowManager& winMgr = WindowManager::getSingleton(); Window* root = winMgr.loadWindowLayout ("font_1.layout"); System::getSingleton().setGUISheet(root); Window* w = root->getChild("FontDemo/Window"); Window* pWin = w->getChild("FontDemo/FontDesc"); std::string str1 = "阿什顿/n经济"; std::wstring strShow = s2ws(str1); CEGUI::String str = (CEGUI::utf8*)Ogre::UTFString(strShow).asUTF8_c_str(); pWin->setProperty("Text", str); }

 

 

你可能感兴趣的:(CEGUI显示中文的一些细节)