Est-il possible de déterminer les polices Windows pour la police choisit-linking?
-
19-09-2019 - |
Question
Supposons que vous ayez une chaîne avec le texte en deux ou plusieurs scripts. Lorsque vous utilisez une fonction GDI comme TextOut
, (versions modernes) Windows ne "font-linking". À savoir, GDI puisera ce qu'il peut avec votre police sélectionnée et tirer le reste dans une police appropriée qu'il choisit automagiquement. Par exemple, si une partie de votre texte est en anglais (en utilisant l'alphabet romain), et une partie de celui-ci est chinois (en utilisant des caractères CJC), et vous avez Arial sélectionné, la partie anglaise sera établi en Arial, et la partie chinois être utilisée dans une autre police qui a glyphes CJC.
Ma question est, est-il un moyen de déterminer les polices TextOut
choisira (ou at-il choisi) pour la liaison de la police?
Je dois tirer un texte avec le bas niveau API Uniscribe, qui ne fait pas la police-liaison automatique. J'ai mis ma propre police-liaison, mais parfois mon algorithme choisit une police différente de celle TextOut
fait pour le même texte. J'essaie de comprendre l'algorithme de Windows mieux, mais je ne suis pas vraiment bien à identifier les polices de caractères à vue (en particulier dans les scripts ne connaissent pas).
La solution
La police est sélectionnée par une entrée de Registre. Il est bien décrit dans cet article Citant la partie pertinente:.
Si la liaison de polices est activée sur votre appareil, vous pouvez examiner le registre en énumérant les sous-clés de la clé de registre HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ FontLink \ SystemLink pour déterminer les correspondances de lien les polices de fonder les polices. Vous pouvez ajouter des liens en utilisant Regedit pour créer d'autres sous-clés.