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_PRINTERFONTS 或 CF_BOTH 旗標時,才會使用此成員;否則會忽略這個成員。
lpLogFont
類型: LPLOGFONT
LOGFONT 結構的指標。 如果您在 Flags 成員中設定CF_INITTOLOGFONTSTRUCT旗標並初始化其他成員,ChooseFont 函式會使用符合 LOGFONT 成員的字型來初始化對話方塊。 如果使用者按兩下 [ 確定 ] 按鈕, ChooseFont 會根據使用者的選取項目來設定 LOGFONT 結構的成員。
iPointSize
類型: INT
選取字型的大小,單位為點的 1/10。 ChooseFont 函式會在使用者關閉對話框之後設定此值。
Flags
類型: DWORD
一組可用來初始化 [ 字 型] 對話框的位旗標。 當對話框傳回時,它會設定這些旗標來指出用戶輸入。 這個成員可以是下列一或多個值。
值 | 意義 |
---|---|
|
導致對話框顯示 [ 套用 ] 按鈕。 您應該提供攔截程式來處理 [套用] 按鈕WM_COMMAND訊息。 攔截程式可以將 WM_CHOOSEFONT_GETLOGFONT 訊息傳送至對話方塊,以擷取包含字型目前選取範圍的 結構位址。 |
|
這個旗標已過時。 若要將字型選取範圍限制為使用 OEM 或符號字元集以外的所有腳本,請使用 CF_SCRIPTSONLY。 若要取得原始CF_ANSIONLY行為,請使用 CF_SELECTSCRIPT,並在 lpLogFont 所指向之 LOGFONT 結構的 lfCharSet 成員中指定ANSI_CHARSET。 |
|
此旗標會忽略字型列舉。
Windows Vista 和 Windows XP/2000: 讓對話框列出可用的印表機和螢幕字型。 hDC 成員是與印表機相關聯的裝置內容或信息內容的句柄。 此旗標是 CF_SCREENFONTS 和 CF_PRINTERFONTS 旗標的組合。 |
|
導致對話框顯示控件,讓使用者指定刪除線、底線和文字色彩選項。 如果設定此旗標,您可以使用 rgbColors 成員來指定初始文字色彩。 您可以使用 lpLogFont 所指向結構的 lfStrikeOut 和 lfUnderline 成員,來指定刪除線和底線複選框的初始設定。 ChooseFont 可以使用這些成員來傳回用戶的選取專案。 |
|
啟用這個 結構的 lpfnHook 成員中指定的攔截程式。 |
|
指出 hInstance 和 lpTemplateName 成員會指定要取代預設範本的對話框範本。 |
|
指出 hInstance 成員會識別包含預先載入對話框範本的數據區塊。 如果指定此旗標,系統會忽略 lpTemplateName 成員。 |
|
ChooseFont 應該列舉並允許只選取固定音調字型。 |
|
如果使用者嘗試選取未列在對話框中的字型或樣式,ChooseFont 應該會指出錯誤狀況。 |
|
ChooseFont 應該另外顯示設定為 [在字型中隱藏] 的字型 控制台。 Windows Vista 和 Windows XP/2000: Windows 7 之前不支援此旗標。 |
|
ChooseFont 應該使用 lpLogFont 成員指向的結構來初始化對話框控件。 |
|
ChooseFont 應該只選取 nSizeMin 和 nSizeMax 成員所指定範圍內的字型大小。 |
|
與 CF_NOVECTORFONTS 旗標相同。 |
|
使用 LOGFONT 結構初始化對話方塊控制項時,請使用這個旗標來防止對話框顯示字型名稱下拉式方塊的初始選取範圍。 當沒有適用於文字選取範圍的單一字型名稱時,這會很有用。 |
|
停用 [ 腳本 ] 下拉式方塊。 設定此旗標時,當 ChooseFont 傳回時,LOGFONT 結構的 lfCharSet 成員會設定為DEFAULT_CHARSET。 這個旗標只會用來初始化對話框。 |
|
ChooseFont 不應該顯示或允許選取字型模擬。 |
|
使用 結構來初始化對話框控件時,請使用這個旗標來防止對話框顯示 [ 字型大小] 下拉式方塊的初始選取範圍。 當沒有套用至文字選取範圍的單一字型大小時,這會很有用。 |
|
使用 LOGFONT 結構初始化對話方塊控制時,請使用這個旗標來防止對話框顯示 [ 字型樣式 ] 下拉式方塊的初始選取範圍。 當沒有套用至文字選取範圍的單一字型樣式時,這會很有用。 |
|
ChooseFont 不應允許向量字型選取。 |
|
使 [ 字型 ] 對話框只列出水準方向的字型。 |
|
此旗標會忽略字型列舉。
Windows Vista 和 Windows XP/2000: 讓對話框只列出與 hDC 成員所識別之裝置內容或資訊內容相關聯的印表機所支援的字型。 它也會導致字型類型描述卷標出現在 [ 字 型] 對話框底部。 |
|
指定 ChooseFont 只允許選取可調整的字型。 可調整的字型包括向量字型、可調整的印表機字型、TrueType 字型,以及依其他技術調整的字型。 |
|
此旗標會忽略字型列舉。
Windows Vista 和 Windows XP/2000: 讓對話框只列出系統支援的螢幕字型。 |
|
ChooseFont 應該允許選取所有非 OEM 和符號字元集的字型,以及 ANSI 字元集。 這會取代 CF_ANSIONLY 值。 |
|
在輸入時指定時,只會顯示LOGFONT結構的 lfCharSet 成員中所識別字元集的字型。 不允許使用者變更 [ 文稿 ] 下拉式方塊中指定的字元集。 |
|
導致對話框顯示 [ 說明 ] 按鈕。 hwndOwner 成員必須指定視窗,以接收當使用者按兩下 [說明] 按鈕時,對話框所傳送的 HELPMSGSTRING 已註冊訊息。 |
|
ChooseFont 應該只列舉並允許選取 TrueType 字型。 |
|
lpszStyle 成員是緩衝區的指標,其中包含 ChooseFont 應該用來初始化字型樣式下拉式方塊的樣式數據。 當使用者關閉對話框時, ChooseFont 會將用戶的選取樣式數據複製到此緩衝區。
注意若要將應用程式全球化,您應該使用 lpLogFont 所指向之 LOGFONT 結構的 lfWeight 和 lfItalic 成員來指定樣式。 樣式名稱可能會根據系統使用者介面語言而變更。
|
|
已過時。
ChooseFont 會忽略此旗標。
Windows Vista 和 Windows XP/2000: ChooseFont 應該只允許在印表機和顯示器上選取可用的字型。 如果指定此旗標,則也應該指定 CF_SCREENSHOTS 和 CF_PRINTERFONTS或 CF_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_ENABLETEMPLATEHANDLE 或 CF_ENABLETEMPLATE ,則會忽略此成員。
lpszStyle
類型: LPTSTR
樣式數據。 如果指定 CF_USESTYLE 旗標, ChooseFont 會使用此緩衝區中的數據來初始化 [字型樣式 ] 下拉式方塊。 當使用者關閉對話框時, ChooseFont 會將 [ 字型樣式 ] 下拉式方塊中的字串複製到此緩衝區。
nFontType
類型: WORD
ChooseFont 傳回時所選取字型的類型。 這個成員可以是下列一或多個值。
值 | 意義 |
---|---|
|
字型粗細為粗體。 這項資訊在 LOGFONT 結構的 lfWeight 成員中重複,相當於FW_BOLD。 |
|
已設定斜體字型屬性。 這項資訊在 LOGFONT 結構的 lfItalic 成員中重複。 |
|
字型是印表機字型。 |
|
字型粗細正常。 這項資訊在 LOGFONT 結構的 lfWeight 成員中重複,相當於FW_REGULAR。 |
|
字型是螢幕字型。 |
|
此字型是由圖形裝置介面模擬, (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 |
另請參閱
概念
參考