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_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 標頭會根據 UNICODE 預處理器常數的定義,將 CHOOSEFONT 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | commdlg.h |
另請參閱
概念
參考