E 'possibile determinare i tipi di carattere di Windows sceglie per font-linking?
-
19-09-2019 - |
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).
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.