PureBasic & GDI+ 1.0
Font


GDI+ permet de créer des polices à partir de famille de polices (FontFamily), des polices avec le même type de profil (design) mais ayant différents styles.
Par exemple, la famille de police Arial contient les polices suivantes :

Arial Regular
Arial Bold
Arial Italic
Arial Bold Italic

GDI+ utilise quatre styles pour former des fmailles : regular (régulier), bold (gras), italic (italique) et bold italic (italique gras).
Il est possible de créer des polices de plusieurs manières.
La fonction GdipCreateFont() permet de créer une police à partir d'une FontFamily, d'une taille (appelée em size), d'un style (normal, italique, gras etc.) et d'une unité (pixels, millimètres etc.).
La fonction GdipCreateFontFromDC() permet de créer une police à partir d'un contexte de périphérique (device context). Elle permet une compatibilité avec GDI. Les attributs de la font seront ceux de la font du contexte de périphérique si celui-ci a une font sélectionnée. Dans le cas contraire la fonction échoue et retourne l'erreur GDI+ #NotTrueTypeFont.
Les fonctions GdipCreateFontFromLogfontA() et GdipCreateFontFromLogfontW() permettent de créer une police à d'une structure (LOGFONTA et LOGFONTW) qui contient les attributs de la police; Le contexte de périphérique utilisé par la fonction contient des attributs graphiques utilisés par GDI+. Elle permet une compatibilité avec GDI.
GdipCreateFontFromLogfontA()
est la version ASCII et GdipCreateFontFromLogfontW() la version unicode de la fonction.
Il est possible d'énumérer les font à partir d'objets appelés FontCollection qui sont les fontes installées (InstalledFontCollection) soit des font privées (PrivateFontCollection). Il n'est pas possible d'ajouter des fontes au système avec les fonctions GDI+. Un objet InstalledFontCollection ne peut retrouver que les fontes qui ont été installées avant la création de l'objet.

Gdi+ permet aux applications d'installer des font privées (PrivateFontCollection) utilisées uniquement par l'application; ces fontes pouvant être aussi bien des fontes déjà installées sur le système que des fontes qui ne le sont pas. GDI+ permet par ce biais à des applications d'installer une version privée d'une police existante sans nécessité de remplacer la version de la police du système . Par exemple, GDI+ peut créer une version privée de la police Arial en plus de la police Arial utilisée par le système. Il s'agit donc de polices provisoires installées qui n'affectent pas les polices installées pour le système.
GDI fournit des fonctions pour lister les polices installées (InstalledFontCollection) :
GdipNewInstalledFontCollection() permet de retrouver l'identifiant InstalledFontCollection à partir duquel on va pouvoir énumérer les polices installées.
GdipGetFontCollectionFamilyCount() permet de retrouver le nombre de police installées (utilisable également pour les font privées).
GdipGetFontCollectionFamilyList() permet de lister l'ensemble des polices polices installées (utilisable également pour les font privées).
GDI fournit des fonctions pour manipuler les polices privées (PrivateFontCollection) :
GdipNewPrivateFontCollection() permet de retrouver l'identifiant PrivateFontCollection à partir duquel on va pouvoir énumérer les polices privées etc.
GdipGetFontCollectionFamilyCount() permet de retrouver le nombre de police privées (utilisable également pour les font installées).
GdipGetFontCollectionFamilyList() permet de lister l'ensemble des polices polices privées (utilisable également pour les font installées).
GdipDeletePrivateFontCollection() permet de détruire l'objet PrivateFontCollection.
GdipPrivateAddFontFile() permet d'ajouter un fichier de police à un objet PrivateFontCollection.
GdipPrivateAddMemoryFont() permet d'ajouter une police située en mémoire système à un objet PrivateFontCollection.

Liste des commandes

GdipCloneFont
GdipCreateFont
GdipCreateFontFromDC
GdipCreateFontFromLogfontA
GdipCreateFontFromLogfontW
GdipDeleteFont
GdipDeletePrivateFontCollection
GdipGetFamily
GdipGetFontCollectionFamilyCount
GdipGetFontCollectionFamilyList
GdipGetFontHeight
GdipGetFontHeightGivenDPI
GdipGetFontSize
GdipGetFontStyle
GdipGetFontUnit
GdipGetLogFontA
GdipGetLogFontW
GdipNewInstalledFontCollection
GdipNewPrivateFontCollection
GdipPrivateAddFontFile
GdipPrivateAddMemoryFont