Lister toutes les polices

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 344 fois - Téléchargée 59 fois

Contenu du snippet

Suite à une question dans la forum, voici le code permettant de lister les toutes les polices présentes dans une listbox...
(Pour que cet exemple fonctionne, il faut que le formulaire s'appelle Form1 et qu'il y ait une listbox appellée List1)

Source / Exemple :


'DANS UN MODULE
'DECLARATION API
Declare Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As Long, ByVal lpsz As String, ByVal lpFontEnumProc As Long, ByVal lParam As Long) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)

'DECLARATION CONSTANTE
Private Const LF_FACESIZE = 32

'DECLARATION TYPE
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(LF_FACESIZE) As Byte
End Type

Function EnumerateFontProcedure(ByVal lplf As Long, ByVal lptm As Long, ByVal dwType As Long, ByVal lpData As Long) As Long
    Dim LF As LOGFONT, FontName As String, ZeroPos As Long
    CopyMemory LF, ByVal lplf, LenB(LF)
    FontName = StrConv(LF.lfFaceName, vbUnicode)
    ZeroPos = InStr(1, FontName, Chr$(0))
    If ZeroPos > 0 Then FontName = Left$(FontName, ZeroPos - 1)
    Form1.List1.AddItem FontName
    EnumerateFontProcedure = 1
End Function

Conclusion :


Utilisation:
EnumFonts Me.hDC, vbNullString, AddressOf EnumerateFontProcedure, 0

A voir également

Ajouter un commentaire Commentaires
Chrysostome Messages postés 121 Date d'inscription vendredi 17 octobre 2003 Statut Membre Dernière intervention 14 octobre 2016
17 mai 2008 à 14:26
Salut!
je ravive le post parce qu'en fait je suis ? la recherche pour distribuer mes programmes Access, de joindre la liste des polices utilis'es. J'aimerais aussi donner le nom de ces polices en fichiers type mapolice.ttf afin de les distribuer en m?me temps si elles sont libres de droit. Merci d'une r?ponse.
Optitech Messages postés 134 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 3 janvier 2009
6 nov. 2005 à 16:49
Slt pj_federation !

Pourlister dnas l'ordre alphabétique tu mais la propriété sorted de ton controle list à true et la liste est trié par orde alphabétique !

@++

Otpitech :)
pj_federation
20 juil. 2001 à 13:03
Euh.. tu saurais pas comment on fait pour lister les polices dans l'ordre alphabétique
bah, moi pour mettre la liste des polices de caractère dans une listebox je fai komme ca:

For a = 0 To Screen.FontCount - 1
List2.AddItem Screen.Fonts(a)
Next a

Sinon, g pas compri a koi servai cette fonction ;-)

@+
fabs :)

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.