Dela via


Standardteckensnittsobjekt

Standardegenskapen för omgivande teckensnitt som tillhandahålls av containern och standardteckensnittsegenskapen som tillhandahålls av kontrollen tillhandahåller båda ett standardteckensnittsobjekt. De här standardteckensnitten anger alltså en IDispatch- pekare till ett standardteckensnittsobjekt.

Teckensnittsobjektet är en systembaserad implementering av en uppsättning gränssnitt ovanpå det underliggande stödet för GDI-teckensnitt. Ett teckensnittsobjekt skapas via API-funktionen OleCreateFontIndirect givet en FONTDESC- struktur. Teckensnittsobjektet stöder ett antal läs-/skrivegenskaper samt anpassade metoder via dess gränssnitt IFontoch har stöd för samma uppsättning egenskaper (men inte metoderna) via en dispinterface-IFontDisp-. Dispinterface används för de teckensnittsegenskaper som nämnts tidigare. Egenskaperna motsvarar de GDI-teckensnittsattribut som beskrivs i LOGFONT- struktur.

Teckensnittsobjektet stöder också utgående gränssnitt IPropertyNotifySink så att en klient kan avgöra när teckensnittsegenskaperna ändras. Eftersom teckensnittsobjektet stöder minst ett utgående gränssnitt implementerar det även IConnectionPointContainer och en anslutningspunkt för IPropertyNotifySink för detta ändamål.

Teckensnittsobjektet innehåller en hFont-egenskap som är ett Windows-teckensnittshandtag som överensstämmer med de andra attributen som angetts för teckensnittet. Teckensnittsobjektet fördröjer genomförandet av det här teckensnittet när det är möjligt, så om du anger två egenskaper för ett teckensnitt i följd kommer inte ett mellanliggande teckensnitt att realiseras. Som optimering upprätthåller standardteckensnittsobjektet dessutom en cache med teckensnittshandtag. Två teckensnittsobjekt i samma process som har identiska egenskaper returnerar samma teckensnittshandtag. Teckensnittsobjektet kan ta bort teckensnitt från cacheminnet efter behov, vilket medför särskilda överväganden för klienter som använder den här hFont-egenskapen. Mer information finns i IFont::get_hFont.

Teckensnittsobjektet stöder också IPersistStream så att det kan spara och läsa in sig själv från en instans av IStream. Alla andra objekt som använder ett teckensnittsobjekt internt skulle normalt spara och läsa in teckensnittet som en del av objektets egen beständighetshantering.

Dessutom stöder teckensnittsobjektet IDataObject- genom vilken det tillhandahåller en egenskapsuppsättning som innehåller typgivna värden för varje teckensnittsegenskap.

Kontrollegenskaper