研究CEGUI首先想解決中文顯示問題,我在網上找了很多關于中文現實的問題,結果發現只對CEGUI的FontDemo例子有效果,其他的例子都不行,后來發現原來是源代碼文件的編碼格式問題,原來只有FontDemo的源代碼文件Unicode(utf-8 無簽名)格式,其他都不是此格式,我用vs2003把其他源代碼文件轉為Unicode(utf-8 無簽名)格式,就可以正常顯示中文了。
以CEGUI自帶的最簡單的例子FirstWindow為例,先將Sample_FirstWindow.cpp轉為Unicode(utf-8 無簽名)格式保存。
將系統文件夾的黑體字字庫文件simhei.ttf拷貝到CEGUI-0.7.1\datafiles\fonts目錄里,然后在FirstWindowSample::initialiseSample()
函數中添加以下代碼:
FontManager::getSingleton().createFreeTypeFont("DefaultFont", 10/*pt*/, true, "simhei.ttf");
// 設為默認字體
System::getSingleton().setDefaultFont("DefaultFont");
然后再在同一個函數內將wnd->setText("Hello World!");
改為:
wnd->setText((CEGUI::utf8*)"大家好!Hello World!");記住一定要有CEGUI::utf8*指針。
編譯運行即可。