共用方式為


CHOOSEFONTW 結構 (commdlg.h)

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

語法

typedef struct tagCHOOSEFONTW {
  DWORD        lStructSize;
  HWND         hwndOwner;
  HDC          hDC;
  LPLOGFONTW   lpLogFont;
  INT          iPointSize;
  DWORD        Flags;
  COLORREF     rgbColors;
  LPARAM       lCustData;
  LPCFHOOKPROC lpfnHook;
  LPCWSTR      lpTemplateName;
  HINSTANCE    hInstance;
  LPWSTR       lpszStyle;
  WORD         nFontType;
  WORD         ___MISSING_ALIGNMENT__;
  INT          nSizeMin;
  INT          nSizeMax;
} CHOOSEFONTW;

成員

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
0x00000800L

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

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
標頭 commdlg.h

另請參閱

ChooseFont

通用對話框連結庫

概念

MAKEINTRESOURCE

參考