2012-05-28 53 views
2

我正在使用C++製作win32應用程序。使用默認字體時,系統會照顧顯示非英文符號,例如印地語中的字符。但是,對於一些特殊的符號,如印度盧比符號(₹),它只顯示一個正方形(我認爲表示當前符號不能顯示)。我已經安裝了能夠顯示符號的Rupakara字體。
我想知道有沒有什麼辦法可以提到,如果符號來自貨幣範圍,我希望使用Rupakara字體,否則使用默認的系統字體。因此,外觀將是,無論用戶輸入什麼,他都會得到相同的正確符號。我知道我可以單獨檢查這些值是否在該範圍內,但我希望有一個API調用將其設置爲在此範圍內使用此字體,因爲稍後我可以使用它來爲其他範圍設置其他字體。
請讓我知道是否需要進一步的細節,或者有沒有其他方式做同樣的事情,而不明確檢查每個字符的範圍,並設置相同的字體。
謝謝如何在Windows中提供特定字體作爲默認的特定unicode值?

+0

我不認爲你可以指定特定字符的字體。那會很奇怪。 –

+0

字體鏈接:http://msdn.microsoft.com/en-us/goglobal/bb688134.aspx –

回答

0

Microsoft Windows 不是substitute fonts

的選項有:

  1. 編輯您當前使用的,有合併這個字符(例如使用FontForge)的字體。確保有關字體的許可證允許您這樣做。
  2. 使用文字渲染引擎進行字體替換。這意味着您將無法使用內置的Windows功能,例如默認文本框和文本渲染功能。
+0

Windows中的字體替換描述如下:http://msdn.microsoft.com/en-us/goglobal/bb688134。 aspx –

+0

@HansPassant:這是否意味着對我的第一個陳述的反駁?即使有第三種方法來解決OP的問題,仍然粘貼∀或編輯框會在我的系統上顯示一個框。這與Web瀏覽器相比,例如,它會自動查找我安裝並正確呈現的Symbola字體。無論微軟如何使用「字體替換」(他們總是濫用術語來獲取自己的優勢),對我而言,它仍然是後者,而不是前者。 – ybungalobill

相關問題