共用方式為


國際字型列舉和選取

在每個主要版本的 Windows 中,都會新增字型以支援國際語言和腳本。 如需自 Windows 2000 以來每個 Windows 版本新增的字型,以及其支援的腳本、區域和語言,請參閱 Windows 中的腳本和字型支援

EnumFontFamiliesEx

若要列舉應用程式中的國際字型,您可以使用 EnumFontFamiliesEx 函式。 EnumFontFamiliesEx 可讓您藉由傳入包含字樣名稱和字元集資訊的 LOGFONT 結構指標,來列舉字樣名稱和字元集資訊的字型。 若要呼叫 EnumFontFamiliesEx,您可以指定字樣名稱或字元集,也可以要求任何可用的專案。 將 LOGFONT 的字樣名稱設定為 NULL 會列舉所有字樣名稱。 將 charset 欄位設定為 DEFAULT_CHARSET 會列舉所有字元集。

請注意,字元集是對應至 Unicode 字元集的舊版概念。 目前,沒有機制可列舉 Unicode 中支援任意腳本或字元範圍的字型。 NEWTEXTMETRICEX 結構由 EnumFontFamExProc 所傳遞,包括 字型開發人員提供的詳細宣告,以及字型支援哪些 Unicode 範圍。 若要更精確地判斷指定字型所支援的字元範圍,請在裝置內容中選取字型,並呼叫 GetFontUnicodeRanges。 請注意,此 API 不支援 Unicode 補充平面。

ChooseFont

您可以使用 ChooseFont 函式來顯示一般對話框,讓使用者可以根據 charset 選取國際字型。 您可以指定三個旗標的其中一個,根據字元集來決定在 ChooseFont 對話框中顯示的字型:CF_SCRIPTSONLYCF_SELECTSCRIPTCF_NOSCRIPTSEL

CF_SCRIPTSONLY 旗標會指示 API 列出不是 Symbol 或 OEM 之所有字元集的字型。

如果您要只顯示涵蓋特定字元集的字型,您必須指定旗標 CF_SELECTSCRIPT。 呼叫 ChooseFont之前,請先初始化 logFONT 結構的 lfCharSet 字段。 如果您只想要指定 charset,請將 logFONT 結構 的其他欄位設定為 NULL。 若要 ChooseFont 查看 LOGFONT 結構,您也需要指定 CF_INITTOLOGFONTSTRUCT 旗標。

最後,如同 [字型] 對話框中的任何其他欄位,您可以選擇顯示空白的腳本清單框。 如果使用者已反白顯示數個跨越數個字元集的不同字型,這項功能就很有用。 在此情況下,您會使用 CF_NOSCRIPTSEL 旗標呼叫 ChooseFont

從 Windows 7 開始,ChooseFont 實作從字型選取清單隱藏字型的支援。 ChooseFont 只會列出顯示的字型,並在清單框中顯示字型時篩選掉隱藏字型。 新增了 ChooseFont 結構之旗標成員中的其他旗標 (CF_INACTIVEFONTS),可讓您在字型清單中顯示所有已安裝的字型,與 Windows 7 之前的行為 ChooseFont 相同。 如需 Windows 7 ChooseFont 函式的行為差異詳細數據,請參閱 Windows 7 Application Quality Cookbook中的 ChooseFont() Win32 Common Dialog。 如需 Windows 7 用戶體驗差異,請參閱 ChooseFont 函式和 CHOOSEFONT 結構。

請注意,字元集是對應至 Unicode 字元集的舊版概念。 目前,沒有根據 Unicode 腳本或字元範圍篩選字型的機制。

Windows 風景區中的字型控件

Windows 7 引進 Windows 景區,其中包含一組以字型選取為目標的控件。 這些字型控件支援新的 Windows 7 字型隱藏行為。 您可以使用這些字型控制項只列出顯示的字型,並允許使用者選取字型。

注意

當 Windows 景區在 Windows 7 之前的任何平台上執行時,無法支援隱藏字型。

 

EnumFontFamiliesEx

ChooseFont

CHOOSEFONT 結構

Windows 風景區 字型控件

ChooseFont() Win32 通用對話框