Énumération et sélection de polices internationales
Dans chaque version majeure de Windows, des polices sont ajoutées pour prendre en charge les langages et scripts internationaux. Reportez-vous à La prise en charge des scripts et des polices dans Windows pour connaître les polices qui ont été ajoutées dans chaque version de Windows depuis Windows 2000, ainsi que leurs scripts, régions et langues pris en charge.
EnumFontFamiliesEx
Pour énumérer les polices internationales dans votre application, vous pouvez utiliser la fonction EnumFontFamiliesEx . EnumFontFamiliesEx vous permet d’énumérer des polices basées sur le nom de police et l’ensemble de caractères en passant un pointeur vers une structure LOGFONT qui contient le nom de police et les informations de jeu de caractères. Pour appeler EnumFontFamiliesEx, vous pouvez spécifier un nom de police ou un jeu de caractères, ou vous pouvez demander ce qui est disponible. La définition du nom de police de la police LOGFONT sur NULL énumère tous les noms de police. La définition du champ d’ensemble de caractères sur DEFAULT_CHARSET énumère tous les jeux de caractères.
Notez que les jeux de caractères sont une notion héritée correspondant aux jeux de caractères pré-Unicode. À l’heure actuelle, il n’existe aucun mécanisme permettant d’énumérer les polices prenant en charge des scripts arbitraires ou des plages de caractères dans Unicode. La structure NEWTEXTMETRICEX passée par EnumFontFamExProc inclut la structure FONTSIGNATURE , qui inclut des déclarations plus détaillées fournies par le développeur de polices quant aux pages de codes et aux plages Unicode que la police prend en charge. Pour déterminer plus précisément les plages de caractères qu’une police donnée prend en charge, sélectionnez la police dans un contexte d’appareil et appelez GetFontUnicodeRanges. Notez que cette API ne prend pas en charge les plans supplémentaires Unicode.
ChooseFont
Vous pouvez utiliser la fonction ChooseFont pour afficher une boîte de dialogue commune qui permet à l’utilisateur de sélectionner des polices internationales en fonction de l’ensemble de caractères. Vous pouvez spécifier l’un des trois indicateurs pour déterminer, en fonction de l’ensemble de caractères, les polices affichées dans la boîte de dialogue ChooseFont : CF_SCRIPTSONLY, CF_SELECTSCRIPT ou CF_NOSCRIPTSEL.
L’indicateur CF_SCRIPTSONLY indique à l’API de répertorier les polices pour tous les jeux de caractères qui ne sont pas symbol ou OEM.
Si vous souhaitez afficher uniquement les polices qui couvrent un jeu de caractères particulier, vous devez spécifier l’indicateur CF_SELECTSCRIPT. Avant d’appeler ChooseFont, initialisez le champ lfCharSet de la structure LOGFONT . Si vous souhaitez spécifier uniquement l’ensemble de caractères, définissez les autres champs de la structure LOGFONT sur NULL. Pour que ChooseFont examine la structure LOGFONT , vous devez également spécifier l’indicateur CF_INITTOLOGFONTSTRUCT .
Enfin, comme pour tout autre champ de la boîte de dialogue Police, vous pouvez choisir d’afficher une zone de liste de script vide. Cette fonctionnalité est utile si l’utilisateur a mis en surbrillance plusieurs polices différentes couvrant plusieurs jeux de caractères. Dans ce cas, vous devez appeler ChooseFont avec l’indicateur CF_NOSCRIPTSEL .
À compter de Windows 7, ChooseFont implémente la prise en charge du masquage des polices dans les listes de sélection de polices. ChooseFont répertorie uniquement les polices affichées et filtre les polices masquées lors de l’affichage des polices dans la zone de liste. L’indicateur supplémentaire (CF_INACTIVEFONTS) dans le membre flags de la structure ChooseFont est ajouté pour vous permettre d’afficher toutes les polices installées dans la liste des polices, de la même façon que ChooseFont se comportait avant Windows 7. Pour plus d’informations sur les différences de comportement dans Windows 7 pour la fonction ChooseFont , consultez La boîte de dialogue commune ChooseFont() Win32 dans le livre de recettes qualité des applications Windows 7. Reportez-vous à la fonction ChooseFont et à la structure CHOOSEFONT pour connaître les différences d’expérience utilisateur dans Windows 7.
Notez que les jeux de caractères sont une notion héritée correspondant aux jeux de caractères pré-Unicode. À l’heure actuelle, il n’existe aucun mécanisme pour filtrer les polices en fonction des scripts Unicode ou des plages de caractères.
Contrôles de police dans le ruban panoramique Windows
Windows 7 présente le ruban panoramique Windows, qui est fourni avec un ensemble de contrôles destinés à la sélection de la police. Ces contrôles de police prennent en charge le nouveau comportement de masquage des polices Windows 7. Vous pouvez utiliser ces contrôles de police pour répertorier uniquement les polices affichées et permettre à l’utilisateur de sélectionner la police.
Notes
La prise en charge du masquage des polices n’est pas disponible lorsque le ruban panoramique Windows s’exécute sur n’importe quelle plateforme antérieure à Windows 7.
Rubriques connexes