CHOOSEFONTA 結構 (commdlg.h)

包含 ChooseFont 函式用來初始化 [字型 ] 對話方塊的資訊。 使用者關閉對話方塊之後,系統會傳回此結構中使用者選取專案的相關資訊。

語法

typedef struct tagCHOOSEFONTA {
  DWORD        lStructSize;
  HWND         hwndOwner;
  HDC          hDC;
  LPLOGFONTA   lpLogFont;
  INT          iPointSize;
  DWORD        Flags;
  COLORREF     rgbColors;
  LPARAM       lCustData;
  LPCFHOOKPROC lpfnHook;
  LPCSTR       lpTemplateName;
  HINSTANCE    hInstance;
  LPSTR        lpszStyle;
  WORD         nFontType;
  WORD         ___MISSING_ALIGNMENT__;
  INT          nSizeMin;
  INT          nSizeMax;
} CHOOSEFONTA;

成員

lStructSize

類型: DWORD

結構的長度,以位元組為單位。

hwndOwner

類型: HWND

擁有對話方塊之視窗的控制碼。 此成員可以是任何有效的視窗控制碼,如果對話方塊沒有擁有者,則為 Null

hDC

類型: HDC

ChooseFont函式會忽略此成員。

Windows Vista 和 Windows XP/2000: 裝置內容或印表機資訊內容的控制碼,其字型將會列在對話方塊中。 只有當 Flags 成員指定 CF_PRINTERFONTSCF_BOTH 旗標時,才會使用此成員;否則會忽略這個成員。

lpLogFont

類型: LPLOGFONT

LOGFONT結構的指標。 如果您在Flags成員中設定CF_INITTOLOGFONTSTRUCT旗標並初始化其他成員,ChooseFont函式會使用符合LOGFONT成員的字型來初始化對話方塊。 如果使用者按一下 [ 確定 ] 按鈕, ChooseFont 會根據使用者的選取專案來設定 LOGFONT 結構的成員。

iPointSize

類型: INT

選取字型的大小,單位為點的 1/10。 ChooseFont函式會在使用者關閉對話方塊之後設定此值。

Flags

類型: DWORD

一組可用來初始化 [ 型] 對話方塊的位旗標。 當對話方塊傳回時,它會設定這些旗標來指出使用者輸入。 這個成員可以是下列一或多個值。

意義
CF_APPLY
0x00000200L
導致對話方塊顯示 [ 套用 ] 按鈕。 您應該提供攔截程式來處理 [用] 按鈕WM_COMMAND訊息。 攔截程式可以將 WM_CHOOSEFONT_GETLOGFONT 訊息傳送至對話方塊,以擷取包含字型目前選取範圍的 結構位址。
CF_ANSIONLY
0x00000400L
這個旗標已過時。 若要將字型選取範圍限制為使用 OEM 或符號字元集以外的所有腳本,請使用 CF_SCRIPTSONLY。 若要取得原始CF_ANSIONLY行為,請使用CF_SELECTSCRIPT,並在lpLogFont所指向之 LOGFONT結構的lfCharSet成員中指定ANSI_CHARSET
CF_BOTH
0x00000003
此旗標會忽略字型列舉。

Windows Vista 和 Windows XP/2000: 讓對話方塊列出可用的印表機和螢幕字型。 hDC成員是與印表機相關聯的裝置內容或資訊內容的控制碼。 此旗標是 CF_SCREENFONTSCF_PRINTERFONTS 旗標的組合。

CF_EFFECTS
0x00000100L
導致對話方塊顯示控制項,讓使用者指定刪除線、底線和文字色彩選項。 如果設定此旗標,您可以使用 rgbColors 成員來指定初始文字色彩。 您可以使用lpLogFont所指向結構的lfStrikeOutlfUnderline成員,來指定刪除線和底線核取方塊的初始設定。 ChooseFont 可以使用這些成員來傳回使用者的選取專案。
CF_ENABLEHOOK
0x00000008L
啟用這個 結構的 lpfnHook 成員中指定的攔截程式。
CF_ENABLETEMPLATE
0x00000010L
指出 hInstancelpTemplateName 成員會指定要取代預設範本的對話方塊範本。
CF_ENABLETEMPLATEHANDLE
0x00000020L
指出 hInstance 成員會識別包含預先載入對話方塊範本的資料區塊。 如果指定此旗標,系統會忽略 lpTemplateName 成員。
CF_FIXEDPITCHONLY
0x00004000L

ChooseFont 應該列舉並允許只選取固定音調字型。

CF_FORCEFONTEXIST
0x00010000L

如果使用者嘗試選取未列在對話方塊中的字型或樣式,ChooseFont應該會指出錯誤狀況。

CF_INACTIVEFONTS
0x02000000L

ChooseFont應該另外顯示設定為 [在字型中隱藏] 主控台的字型。

Windows Vista 和 Windows XP/2000: Windows 7 之前不支援此旗標。

CF_INITTOLOGFONTSTRUCT
0x00000040L

ChooseFont 應該使用 lpLogFont 成員指向的結構來初始化對話方塊控制項。

CF_LIMITSIZE
0x00002000L

ChooseFont 應該只選取 nSizeMinnSizeMax 成員所指定範圍內的字型大小。

CF_NOOEMFONTS
0x00000800L
CF_NOVECTORFONTS 旗標相同。
CF_NOFACESEL
0x00080000L
使用 LOGFONT 結構初始化對話方塊控制項時,請使用這個旗標來防止對話方塊顯示字型名稱下拉式方塊的初始選取範圍。 當沒有適用于文字選取範圍的單一字型名稱時,這會很有用。
CF_NOSCRIPTSEL
0x00800000L
停用 [ 腳本 ] 下拉式方塊。 設定此旗標時,當ChooseFont傳回時,LOGFONT結構的lfCharSet成員會設定為DEFAULT_CHARSET。 這個旗標只會用來初始化對話方塊。
CF_NOSIMULATIONS
0x00001000L

ChooseFont 不應該顯示或允許選取字型模擬。

CF_NOSIZESEL
0x00200000L
使用 結構來初始化對話方塊控制項時,請使用這個旗標來防止對話方塊顯示 [ 字型大小] 下拉式方塊的初始選取範圍。 當沒有套用至文字選取範圍的單一字型大小時,這會很有用。
CF_NOSTYLESEL
0x00100000L
使用 LOGFONT 結構初始化對話方塊控制項時,請使用這個旗標來防止對話方塊顯示 [ 字型樣式 ] 下拉式方塊的初始選取專案。 當沒有套用至文字選取範圍的單一字型樣式時,這會很有用。
CF_NOVECTORFONTS
0x000000800L

ChooseFont 不應允許向量字型選取。

CF_NOVERTFONTS
0x01000000L
使 [ 字型 ] 對話方塊只列出水準方向的字型。
CF_PRINTERFONTS
0x00000002
這個旗標會忽略字型列舉。

Windows Vista 和 Windows XP/2000: 讓對話方塊只列出與 hDC 成員所識別之裝置內容或資訊內容相關聯的印表機所支援的字型。 它也會導致字型類型描述標籤出現在 [ 型] 對話方塊底部。

CF_SCALABLEONLY
0x00020000L
指定 ChooseFont 只允許選取可調整的字型。 可調整的字型包括向量字型、可調整的印表機字型、TrueType 字型,以及由其他技術調整的字型。
CF_SCREENFONTS
0x00000001
這個旗標會忽略字型列舉。

Windows Vista 和 Windows XP/2000: 讓對話方塊只列出系統支援的螢幕字型。

CF_SCRIPTSONLY
0x00000400L

ChooseFont 應該允許選取所有非 OEM 和符號字元集的字型,以及 ANSI 字元集。 這會取代 CF_ANSIONLY 值。

CF_SELECTSCRIPT
0x00400000L
在輸入上指定時,只會顯示LOGFONT結構的lfCharSet成員中所識別字元集的字型。 使用者將無法變更 [ 腳本 ] 下拉式方塊中指定的字元集。
CF_SHOWHELP
0x00000004L
導致對話方塊顯示 [ 說明 ] 按鈕。 hwndOwner成員必須指定視窗,以接收當使用者按一下 [說明] 按鈕時,對話方塊所傳送的HELPMSGSTRING已註冊訊息。
CF_TTONLY
0x00040000L

ChooseFont 應該只列舉並允許選取 TrueType 字型。

CF_USESTYLE
0x00000080L
lpszStyle成員是緩衝區的指標,其中包含ChooseFont應該用來初始化字型樣式下拉式方塊的樣式資料。 當使用者關閉對話方塊時, ChooseFont 會將使用者的選取樣式資料複製到此緩衝區。
注意若要將應用程式全球化,您應該使用lpLogFont所指向之 LOGFONT結構的lfWeightlfItalic成員來指定樣式。 樣式名稱可能會根據系統使用者介面語言而變更。
 
CF_WYSIWYG
0x00008000L
已過時。 ChooseFont 會忽略此旗標。

Windows Vista 和 Windows XP/2000: ChooseFont 只允許印表機和顯示器上可用的字型選取。 如果指定此旗標,則也應該指定 CF_SCREENSHOTSCF_PRINTERFONTSCF_BOTH 旗標。

rgbColors

類型: COLORREF

如果 已設定CF_EFFECTS 旗標, rgbColors 會指定初始文字色彩。 當 ChooseFont 成功傳回時,此成員會包含使用者選取之文字色彩的 RGB 值。 若要建立 COLORREF 色彩值,請使用 RGB 宏。

lCustData

類型: LPARAM

系統傳遞至 lpfnHook 成員所識別的攔截程式的應用程式定義資料。 當系統將 WM_INITDIALOG 訊息傳送至攔截程式時,訊息的 lParam 參數是建立對話方塊時所指定 CHOOSEFONT 結構的指標。 攔截程式可以使用這個指標來取得 lCustData 值。

lpfnHook

類型: LPCFHOOKPROC

CFHookProc攔截程式的指標,可處理用於對話方塊的訊息。 除非在Flags成員中設定CF_ENABLEHOOK旗標,否則會忽略這個成員。

lpTemplateName

類型: LPCTSTR

hInstance成員所識別模組中的對話方塊範本資源名稱。 此範本會取代標準對話方塊範本。 針對編號對話方塊資源, lpTemplateName 可以是 MAKEINTRESOURCE 宏所傳回的值。 除非在Flags成員中設定CF_ENABLETEMPLATE旗標,否則會忽略此成員。

hInstance

類型: HINSTANCE

如果在Flags成員中設定CF_ENABLETEMPLATEHANDLE旗標,hInstance是包含對話方塊範本的記憶體物件控制碼。 如果 已設定CF_ENABLETEMPLATE 旗標, hInstance 是模組的控制碼,其中包含 由 lpTemplateName 成員命名的對話方塊範本。 如果未設定 CF_ENABLETEMPLATEHANDLECF_ENABLETEMPLATE ,則會忽略這個成員。

lpszStyle

類型: LPTSTR

樣式資料。 如果指定 CF_USESTYLE 旗標, ChooseFont 會使用此緩衝區中的資料來初始化 [字型樣式 ] 下拉式方塊。 當使用者關閉對話方塊時, ChooseFont 會將 [字型樣式 ] 下拉式方塊中的字串複製到此緩衝區。

nFontType

類型: WORD

ChooseFont傳回時選取的字型類型。 這個成員可以是下列一或多個值。

意義
BOLD_FONTTYPE
0x0100
字型粗細為粗體。 這項資訊會在LOGFONT結構的lfWeight成員中重複,相當於FW_BOLD
ITALIC_FONTTYPE
0x0200
已設定斜體字型屬性。 這項資訊會在LOGFONT結構的lfItalic成員中重複。
PRINTER_FONTTYPE
0x4000
字型是印表機字型。
REGULAR_FONTTYPE
0x0400
字型粗細正常。 這項資訊會在LOGFONT結構的lfWeight成員中重複,而且相當於FW_REGULAR
SCREEN_FONTTYPE
0x2000
字型是螢幕字型。
SIMULATED_FONTTYPE
0x8000
圖形裝置介面會模擬字型, (GDI) 。

___MISSING_ALIGNMENT__

nSizeMin

類型: INT

使用者可以選取的最小點數。 只有在指定CF_LIMITSIZE旗標時,ChooseFont才會辨識此成員。

nSizeMax

類型: INT

使用者可以選取的最大點數。 只有在指定CF_LIMITSIZE旗標時,ChooseFont才會辨識此成員。

備註

注意

commdlg.h 標頭會根據 UNICODE 預處理器常數的定義,將 CHOOSEFONT 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 commdlg.h

另請參閱

ChooseFont

通用對話方塊程式庫

概念

MAKEINTRESOURCE

參考