Apodemus
Messages postés24Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention17 avril 2002 6 févr. 2002 à 14:01
Voici un moyen de le faire (ici sur une form, mais ca marche a l'impression)
C'est un peu long...
dans la section [General] de la feuille
Private Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal h As Long, ByVal w As Long, ByVal e As Long, ByVal o As Long, ByVal w As Long, ByVal i As Long, ByVal u As Long, ByVal s As Long, ByVal C As Long, ByVal op As Long, ByVal cp As Long, ByVal q As Long, ByVal PAF As Long, ByVal f As String) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
et dans le code d'un bouton
sub Command1_click()
Const CLIP_LH_ANGLES 16, Pi 3.14159625, PI_180 = Pi / 180#
Dim newfont As Long, oldfont As Long
Dim Taille as long,angle as integer, gras as integer
Dim Italic as boolean, Souligne as boolean, Barre as boolean
me.autoRedraw=true
Taille=24
gras=100 'plus ou moins gras 1000=tres gras
angle =90 ' 90 degres
'créer une nouvelle font a partir d'Arial (ou autre TrueType)
newfont = CreateFont(Taille, 0, angle*10, angle*10, gras, _
italic, souligne, barre, 0, 0, _
CLIP_LH_ANGLES, 0, 0, "Arial")
'Attribuer Nnewfont à la form, en recuperant l'ancienne
oldfont = SelectObject(Me.hdc, newfont)
'Ecrire normalement
Me.CurrentX = 2000
Me.CurrentY = 4000
Me.Print "Hello"
'remettre l'ancienne
newfont = SelectObject(Me.hdc, oldfont)
'Faire le ménage (important!)
DeleteObject newfont
me.refresh ' si la form est autoredraw
end sub