Domanda

Si supponga di avere una stringa con il testo in due o più script. Quando si utilizza una funzione GDI come TextOut, (versioni moderne di) di Windows farà "font-linking". Cioè, GDI disegnerà quello che può con il font selezionato e disegnare il resto in un tipo di carattere appropriato che sceglie automagicamente. Ad esempio, se una parte del testo è in inglese (usando l'alfabeto romano), e parte di esso è cinese (usando caratteri CJK), e si dispone di Arial selezionato, la parte inglese sarà disegnata in Arial, e la parte cinese essere disegnato in un altro tipo di carattere che ha i glifi CJK.

La mia domanda è: esiste un modo per determinare quali font TextOut sceglierà (o ha fatto scegliere) per il collegamento di carattere?

devo disegnare un testo con il basso livello Uniscribe API, che non fa automatica font-linking. Ho implementato il mio font-linking, ma a volte il mio algoritmo sceglie un tipo di carattere diverso da quello TextOut fa per lo stesso testo. Sto cercando di capire l'algoritmo di Windows meglio, ma io non sono vero bene a caratteri identificativi a vista (soprattutto negli script non familiari).

È stato utile?

Soluzione

Il font è selezionato da una voce di registro. E 'ben descritto in questo articolo Citando la parte rilevante:.

  

Se collegamento dei font è abilitato sul   dispositivo, è possibile esaminare il Registro   enumerando le sottochiavi della   chiave di Registro di sistema   HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows   NT \ CurrentVersion \ FontLink \ SystemLink   per determinare la mappatura degli collegato   font basare i font. È possibile aggiungere link   utilizzando Regedit per creare ulteriore   sottochiavi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top