2016-07-27 198 views
-1

我使用AddFontResourceW(_T(「C:\ Program Files \ MyApp \ MyFont.ttf」));從我的64位C++應用程序安裝2種字體。AddFontResource不能正確安裝字體

返回值爲1,但在應用程序中,字體顯示小10倍,看起來像Sans Serif(不是我的字體)。

如果我在Windows中手動安裝字體,那麼它會在應用程序中正確顯示。

我試過AddFontResourceEx,但結果相同。我也嘗試用我的應用程序安裝程序複製C:\ Windows \ Fonts中的TTF字體文件,然後調用AddFontResource(_T(「myfont.ttf」));和相同的結果。

如果我根本沒有調用AddFontResource,那麼字體會以正確大小的Arial替換。

在64位Windows 7,10和Windows 2012 Server中進行測試。

我已經嘗試過Oswald字體和Ubuntu,但是我得到了相同的結果。

+0

字體的顯示大小與它的安裝方式無關,以及與應用程序的UI代碼在運行時如何加載和配置字體有關的所有內容。 –

+0

當字體顯示較小時,字體也不是正確的字體。如果我手動安裝字體,則會顯示正確的字體和大小。 –

回答

0

我已經通過將字體複製到C:\ Windows \ Fonts然後將其添加到註冊表,然後添加AddFontResource,否則它不會正確顯示字體來解決問題。將其用作臨時字體資源不起作用。