IFont 介面 (ocidl.h)
提供 Windows 字型物件周圍的包裝函式。 COM 字型物件支援許多讀取/寫入屬性,以及透過其 IFont 介面的一組方法。 它支援一組相同的屬性 (,但不支援透過分派介面 IFontDisp) 的方法,其衍生自 IDispatch ,以透過自動化提供字型屬性的存取權。 系統會使用這兩個介面提供字型物件的標準實作。
字型物件也支援傳出介面 IPropertyNotifySink ,讓用戶端可以判斷字型屬性何時變更。 由於字型物件至少支援一個傳出介面,因此也會針對此目的實作 IConnectionPointContainer 和相關介面。
字型物件提供 hFont 屬性,這是符合為字型指定之其他屬性的 Windows 字型控制碼。 字型物件會在可能時延遲實現此 hFont 物件,因此連續在字型上設定兩個屬性並不會使中繼字型實現。 此外,作為優化,系統實作的字型物件會維護字型控制碼的快取。 相同進程中具有相同屬性的兩個字型物件會傳回相同的字型控制碼。 字型物件可以從這個快取中移除字型控制碼,這會針對使用 hFont 屬性的用戶端引進特殊考慮。
字型物件也支援 IPersistStream ,以便從 IStream實例儲存和載入本身。 在內部使用字型物件的 物件通常會儲存並載入字型,做為物件本身持續性處理的一部分。
此外,字型物件支援 IDataObject,可轉譯包含字型屬性的屬性集,讓用戶端將這些屬性儲存為文字。
繼承
IFont介面繼承自IUnknown介面。 IFont 也有下列類型的成員:
方法
IFont介面具有這些方法。
IFont::AddRefHfont 通知字型物件,在呼叫 ReleaseHfont 或完全釋放字型本身之前,先前以 hFont 識別的字型應該保持有效狀態。 |
IFont::Clone 建立重複的字型物件。 |
IFont::get_Bold 取得字型目前的 Bold 屬性。 |
IFont::get_Charset 擷取字型中使用的字元集。 |
IFont::get_hFont 擷取這個字型物件所描述字型的控制碼。 |
IFont::get_Italic 取得字型的目前斜體屬性。 |
IFont::get_Name 擷取字型系列的名稱。 |
IFont::get_Size 擷取字型的點大小。 |
IFont::get_Strikethrough 取得字型目前的 Strikethrough 屬性。 |
IFont::get_Underline 取得字型目前的 Underline 屬性。 |
IFont::get_Weight 取得字型目前的 Weight 屬性。 |
IFont::IsEqual 比較此字型物件與另一個字型物件是否相等。 |
IFont::p ut_Bold 設定字型的 Bold 屬性。 |
IFont::p ut_Charset 設定字型的字元集。 |
IFont::p ut_Italic 設定字型的斜體屬性。 |
IFont::p ut_Name 指定字型系列的新名稱。 |
IFont::p ut_Size 設定字型的點大小。 |
IFont::p ut_Strikethrough 設定字型的 Strikethrough 屬性。 |
IFont::p ut_Underline 設定字型的 Underline 屬性。 |
IFont::p ut_Weight 設定字型的 Weight 屬性。 |
IFont::QueryTextMetrics 使用字型的相關資訊填入呼叫端配置的結構。 |
IFont::ReleaseHfont 通知字型物件,先前在快取中使用 IFont::AddRefHfont 鎖定此字型的呼叫端不再需要鎖定。 |
IFont::SetHdc 提供描述邏輯對應模式之字型的裝置內容。 |
IFont::SetRatio 在邏輯單元與 HIMETRIC 單位之間轉換此字型的縮放比例。 |
備註
如果屬性支援讀取權限,則 IFont介面中的每個屬性都包含get_PropertyName方法,如果屬性支援寫入權限,則為put_PropertyName方法。 其中大部分的屬性都支援讀取和寫入存取。
屬性 | 類型 | 讀取存取方法 | Write Access 方法 | 描述 |
---|---|---|---|---|
名稱 | BSTR | get_Name | put_Name | 字型的臉部名稱,例如 Arial。 |
大小 | CY | get_Size | put_Size | 字型的點大小,以 CY 類型表示,以允許小數點大小。 |
粗體字 | Bool | get_Bold | put_Bold | 指出字型是否為粗體。 |
斜體 | Bool | get_Italic | put_Italic | 指出字型是否斜體化。 |
Underline | Bool | get_Underline | put_Underline | 指出字型是否加上底線。 |
刪除線 | Bool | get_Strikethrough | put_Strikethrough | 指出字型是否為刪除線。 |
Weight | short | get_Weight | put_Weight | 字型的粗體。 |
字元集 | short | get_Charset | put_Charset | 字型中使用的字元集,例如 ANSI_CHARSET、 DEFAULT_CHARSET或 SYMBOL_CHARSET。 |
hFont | HFONT | get_hFont | 可選取至裝置內容的 Windows 字型控制碼以進行轉譯。 |
OLE 實作
系統會在基礎系統字型支援之上,提供具有 IFont 介面之字型物件的標準實作。 字型物件是透過 OleCreateFontIndirect函數所建立。 字型物件透過IFont介面支援許多讀取/寫入屬性以及一組方法,並支援相同的屬性集 (,但不支援透過衍生自IDispatch的分派介面IFontDisp來提供透過自動化存取字型屬性) 的方法集。 字型物件的系統實作提供這兩個介面。需求
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | ocidl.h |