公告: 本站內所有河洛語文之字詞書寫皆以此為準

[語文學習]河洛語文之常用漢字詞彙收錄概觀

內文: 因內容略大 故開啟時間會稍加延遲                      河洛語文之常用漢字詞彙收錄概觀-1-1                 河洛語文之常用漢字詞彙收錄概觀-1-2               河洛語文 之常用漢字詞彙收錄概觀-2-1    ...

2013年7月18日 星期四

[電腦應用]C++-SDL_ttf, 字串跳行(SDL_ttf, a string to skip a line)

(備註: 以下內容僅供參考, 另有更完整功能的文章就在: < C++>SDL_ttf, 精準地字串跳行(SDL_ttf, a string to skip a line accurately))

1. 目標:
使用C++及SDL_ttf在工作視窗(window)的螢幕畫面上顯示一段含有大小寫英文字母繁簡漢字其他文字數字及符號所組成的字串, 並可使該字串能針對視窗大小來手動或自動換行.

字串內容(藍色文字, 自程式第243至268行):








 













2. 做法:
(請參: < C++>SDL_ttf, 字串及各種文字(SDL_ttf, string and a variety of text))
2.1. 確認工作環境:
2.1.1. 作業系統: Windows XP/Vista/Win7
2.1.2. C++編譯工具: Code::Blocks 12.11
將其開檔編碼設為UTF-8(點擊功能列的Settings>Editor...>Other settings>"Encoding"Use encoding when opening files:);
另編輯器之其他選項框內須加入下行橘色文字: 
-fexec-charset=BIG-5
(點擊功能列的Settings>Compiler...>Global compiler settings(全域編輯器設定項目)>Compiler settings>Other options(其他選項))
2.1.3. 安裝函式庫: SDL(Simple DirectMedia Layer)SDL_ttf
最好將其相關的動態連結資料庫(DLL, Dynamic Link Library)與本程式置於同一資料夾中.
2.1.4. 文件格式: 檔案(F)> New> File...> 選擇 "C/C++ source"> 選擇 "C++"


2.2. C++語法及註解:
P.S. 因為尚不能精確掌握字體大小與像素比例, 故在程式的第133行(float HPPFS = ceil(MyFontSize*1.2),)與第134行(NHPPFS = ceil(HPPFS/2.5);)處的計算方式有待改進.

2.3. 結果:

其顯示畫面如下:




















圖片中的紅圈為單一個重音符號"`"(0x0060), 用於誤動作比對測試(共六處); 
圖片中的綠圈為脫落的文字(共四處), 此問題的發生與使用的文字及所選用的ttf檔間匹配有關;
橘線標示處表示該字詞未能完整跳行, 因該印度字體未在原訂的設定之中;
橘線標示處表示該字詞與邊框的間距不符設計要求, 日後可從精準掌握字型大小及邊框間距的設定處進行改良.

2.4. 資源下載:

本C++語法的自解壓縮檔下載位置: TrueTypeFonts-Han_StringAKL.cpp(共12KB)
注意: 於運用前請先考量著作者的權利宣告與使用範圍

2.5. 改良延伸:
有興趣者可將字串的建構方式改由鍵盤輸入或導入其他格式的文字文件.


3. 感謝:

感謝網路上每位資訊提供者, 因為有您們無私的貢獻, 讓大家才有更美好的表現.
因為我是初學者, 如未能提供更詳實完整的資訊與解答時, 請見諒.

相關文章:

1. < C++>SDL_ttf, 字串及各種文字(SDL_ttf, string and a variety of text)
2. < C++>SDL_ttf, 精準地字串跳行(SDL_ttf, a string to skip a line accurately)


修訂: 20130727(Wed.)

沒有留言:

張貼留言