Savoir si police est TrueType [Résolu]

yan35 185 Messages postés dimanche 29 juin 2003Date d'inscription 20 juin 2013 Dernière intervention - 20 avril 2005 à 18:17 - Dernière réponse : yan35 185 Messages postés dimanche 29 juin 2003Date d'inscription 20 juin 2013 Dernière intervention
- 18 janv. 2010 à 10:54
Bonjour,

Comment peut-on savoir si la police en cours est TrueType ?
Afficher la suite 

6 réponses

Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - 18 janv. 2010 à 09:55
+3
Utile
Bonjour,
"ucfoutu" m'a apporté la réponse (encore merci à lui )
Ici
Je poste ici aussi pour que sa soit plus simple à trouver pour les autres
'Module Code
' Only allow declared variables
Option Explicit
' Declare constants
Public Const TMPF_TRUETYPE = &H4
Public Const LF_FACESIZE = 32
' Declare types
Public Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
    lfOrientation As Long
    lfWeight As Long
    lfItalic As Byte
    lfUnderline As Byte
    lfStrikeOut As Byte
    lfCharSet As Byte
    lfOutPrecision As Byte
    lfClipPrecision As Byte
    lfQuality As Byte
    lfPitchAndFamily As Byte
    lfFaceName(1 To LF_FACESIZE) As Byte
End Type
Public Type TEXTMETRIC
    tmHeight As Long
    tmAscent As Long
    tmDescent As Long
    tmInternalLeading As Long
    tmExternalLeading As Long
    tmAveCharWidth As Long
    tmMaxCharWidth As Long
    tmWeight As Long
    tmOverhang As Long
    tmDigitizedAspectX As Long
    tmDigitizedAspectY As Long
    tmFirstChar As Byte
    tmLastChar As Byte
    tmDefaultChar As Byte
    tmBreakChar As Byte
    tmItalic As Byte
    tmUnderlined As Byte
    tmStruckOut As Byte
    tmPitchAndFamily As Byte
    tmCharSet As Byte
End Type
' Declare Windows API functions
Public Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Public Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" (ByVal hdc As Long, lpMetrics As TEXTMETRIC) As Long
'La fonction DeleteObject supprime un objet (logical pen, brush, font, bitmap, region, or palette), ce qui libère toutes les ressources système associé à l'objet. Après que l'objet soit supprimé, le handle spécifié n'est plus valide.
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Public Function IsFontTrueType(sFontName As String, ByVal HdcSruface As Long) As Boolean
    Dim lf As LOGFONT
    Dim tm As TEXTMETRIC
    Dim oldfont As Long, newfont As Long
    Dim tmpArray() As Byte
    Dim dummy As Long
    Dim i As Integer
    'need to convert font name to byte array...
    tmpArray = StrConv(sFontName & vbNullString, vbFromUnicode)
    For i = 0 To UBound(tmpArray)
        lf.lfFaceName(i + 1) = tmpArray(i)
    Next
    'create the font object
    newfont = CreateFontIndirect(lf)
    'save the current font object and use the new font object
    oldfont = SelectObject(HdcSruface, newfont)
    'get the new font object's info
    dummy = GetTextMetrics(HdcSruface, tm)
    'determine whether new font object is TrueType
    IsFontTrueType = CBool(tm.tmPitchAndFamily And TMPF_TRUETYPE)
    'restore the original font object - !!!THIS IS IMPORTANT!!!
    dummy = SelectObject(HdcSruface, oldfont)
    'Supprime la police crée
    DeleteObject newfont
End Function



Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
Cette réponse vous a-t-elle aidé ?  
robapt 114 Messages postés mardi 6 juillet 2004Date d'inscription 4 décembre 2009 Dernière intervention - 20 avril 2005 à 18:21
0
Utile
Truetype c'est a dire
yan35 185 Messages postés dimanche 29 juin 2003Date d'inscription 20 juin 2013 Dernière intervention - 20 avril 2005 à 19:12
0
Utile
Qui peuvent s'orienter comme Arial par exemple. Polices avec extension .ttf, alors que les autres sont .fon
Mais comment savoir si la police sélectionnée dans le programme d'impression VB est de type TT ?
Il existe surement 1 API mais laquelle ?

Merci
Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - 15 janv. 2010 à 17:06
0
Utile
Bonjour,
Je sait que ce sujet date un peut (un peut plus même) mais a tu fini par trouver (si oui c'est quoi cette API) ?
Je suis à la recherche de la même chose (si je trouve je poste ici ).

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
yan35 185 Messages postés dimanche 29 juin 2003Date d'inscription 20 juin 2013 Dernière intervention - 16 janv. 2010 à 11:28
0
Utile
Bonjour Polack77,
Non, je n'ai pas trouvé, désolé. Et comme depuis j'ai eu d'autres urgences, j'ai abandonné mes recherches sur ce sujet, mais si tu trouves, je suis preneur.
Cordialement
yan35 185 Messages postés dimanche 29 juin 2003Date d'inscription 20 juin 2013 Dernière intervention - 18 janv. 2010 à 10:54
0
Utile
Merci à toi et ucfoutu.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.