1、首先将中文字体拷贝到Cegui的fonts文件夹下,比如将C:\Windows\Fonts下的微软雅黑拷贝到D:\osg3.2vs2013\osg3.2.1\cegui\share\fonts,如下图所示:
2、在拷贝到CEGUI的fonts目录会变成3个文件,我们只用msyh.ttc即可,然后新建一个msyh.font,其中的内容为:
<?xml version="1.0" ?> <Font version="3" name="msyh" filename="msyh.ttc" type="FreeType" size="12" nativeHorzRes="1920" nativeVertRes="1080" autoScaled="false"/>
其中name则是中文字体的名称,fillename则为字体的文件名,size为字体的大小,在写到CEGUI的字体的大小可以通过这里定义,如下图所示:
3、进入到schemes文件夹下,找到在代码中引入的scheme文件,如TaharezLook.scheme,打开该文件,修改引用字体,如下图所示:
4、在代码中分别使用
CEGUI::SchemeManager::getSingleton().createFromFile("TaharezLook.scheme");
和
CEGUI::Font &defaultFont = CEGUI::FontManager::getSingleton().createFromFile("msyh.font");
5、然后将汉字转换为窄字符,如下代码所示:
wstring aa = L"退出"; char buff[128] = ""; WideCharToMultiByte(CP_UTF8, 0, aa.c_str(), aa.size(), buff, sizeof(buff),0,0); no->setText((CEGUI::utf8*)buff);
6、运行效果如下: