Installation och borttagning av teckensnitt
Ett program kan använda ett teckensnitt för att endast rita text om teckensnittet antingen finns på en angiven enhet eller är installerat i systemets teckensnittstabell. Teckensnittstabellen är en intern matris som identifierar alla nondevice-teckensnitt som är tillgängliga för ett program. Ett program kan hämta namnen på teckensnitt som för närvarande är installerade på en enhet eller lagras i den interna teckensnittstabellen genom att anropa funktionerna EnumFontFamilies eller ChooseFont.
Om du tillfälligt vill installera ett teckensnitt anropar du AddFontResource eller AddFontResourceEx. Dessa funktioner läser in ett teckensnitt som lagras i en teckensnittsresursfil. Detta är dock en tillfällig installation eftersom teckensnittet inte kommer att finnas efter en omstart.
Om du vill installera ett teckensnitt som ska finnas kvar när systemet har startats om använder du någon av följande metoder:
- Gå till Kontrollpanelen, klicka på ikonen teckensnitt och välj Installera nya teckensnitt från menyn Arkiv. Teckensnittet är tillgängligt för ett program redan före omstarten. I en terminalserversituation är teckensnittet dock tillgängligt för den aktuella sessionen men är inte tillgängligt för andra sessioner förrän efter en omstart.
- Kopiera teckensnittet till mappen %windir%\fonts. Gå sedan till Kontrollpanelen och klicka på ikonen Teckensnitt eller anropa AddFontResource eller AddFontResourceEx. Teckensnittet är tillgängligt för ett program redan före omstarten. I en terminalserversituation är teckensnittet dock tillgängligt för den aktuella sessionen men är inte tillgängligt för andra sessioner förrän efter en omstart. Om du bara kopierar teckensnittet till mappen %windir%\fonts blir teckensnittet endast tillgängligt när systemet har startats om.
När ett program har använt ett installerat teckensnitt måste det ta bort teckensnittet genom att anropa funktionen RemoveFontResource.
Ett teckensnitt som är installerat från en annan plats än mappen %windir%\fonts kan inte ändras när det läses in i en aktiv session, inklusive session 0. Alla försök att ändra, ersätta eller ta bort kommer därför att blockeras. Om det är nödvändigt att ändra ett teckensnitt:
- Tillfälliga teckensnitt läses bara in i den aktuella sessionen. Innan du försöker ändra teckensnitt anropar du RemoveFontResource för att tvinga den aktuella sessionen att ta bort teckensnittet.
- Permanenta teckensnitt förbli installerade efter omstart och läses in av alla skapade sessioner. Anropa RemoveFontResource för att tvinga den aktuella sessionen att ta bort teckensnittet. I teckensnittsregisternyckeln (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) letar du sedan reda på och tar bort registervärdet som är associerat med teckensnittet. Starta slutligen om datorn för att se till att teckensnittet inte läses in i någon session. Efter omstarten fortsätter du med teckensnittsändringen/borttagningen.
När ett program anropar funktionerna som lägger till och tar bort teckensnittsresurser bör det även anropa funktionen SendMessage och skicka ett WM_FONTCHANGE meddelande till alla fönster på den översta nivån i systemet. Det här meddelandet meddelar andra program att den interna teckensnittstabellen har ändrats av ett program som har lagt till eller tagit bort ett teckensnitt.