cs_jacques13
Messages postés252Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention29 juin 2013
-
8 avril 2013 à 16:03
cs_jacques13
Messages postés252Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention29 juin 2013
-
10 avril 2013 à 08:44
Bonjour à tous,
J'essaye de dessiner sur une PictureBox un texte affecté d'une certaine rotation.
J'utilise le code suivant:
Private Sub Form_Load()
Dim GpInput As GdiplusStartupInput
Dim token As Long
GpInput.GdiplusVersion = 1
If GdiplusStartup(token, GpInput) <> Ok Then
MsgBox "Error loading GDI+!", vbCritical
Unload Me
End If
Dim graphics As Long, brush As Long
Dim fontFam As Long, curFont As Long
Dim lm As LOGFONTW
Dim rcOrigin As RECTF
Dim str As String, strlen As Long
str = "Texte avec une rotation!"
strlen = Len(str)
str = StrConv(str, vbUnicode)
Call GdipCreateFromHDC(Picture1.hDC, graphics)
Call GdipCreateSolidFill(vbRed, brush)
Call GdipCreateFontFamilyFromName(StrConv("Courier", vbUnicode), 0, fontFam)
lm.lfItalic = True
lm.lfEscapement = 450&
lm.lfOrientation = 450&
lm.lfHeight = 40
lm.lfWidth = 35
lm.lfWeight = 20
Call GdipCreateFontFromLogfontW(Picture1.hDC, lm, curFont)
rcOrigin.Left = 50
rcOrigin.Top = 50
Call GdipDrawString(graphics, str, strlen, curFont, rcOrigin, 0, brush)
Call GdipDeleteFont(curFont)
Call GdipDeleteFontFamily(fontFam)
Call GdipDeleteBrush(brush)
Call GdipDeleteGraphics(graphics)
End Sub
Malheureusement, cela ne fonctionne pas.
Un spécialiste du GDI+ pourrait-il me donner son avis?
Jacques13
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 9 avril 2013 à 21:01
BVonjour,
GDI n'a pas pour vocation celle de travailler sur des textes, mais sur des images. Tu peux bien évidemment "pixeliser" le texte, puis exercer une rotation dur l'image résultant de cette "pixelisation". Le résultat sera on ne peut plus "pauvre".
Abandonne donc une telle idée et commence à t'intéresser à d'autres fonctions de l'Api de windows, telle CreateFontIndirect.
Voilà voilà.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
cs_jacques13
Messages postés252Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention29 juin 2013 9 avril 2013 à 22:23
Bonjour Ucfoutu,
Je suis d'accord avec toi, GDI32 est bien plus simple à utiliser que GDI+
Malheureusement, je suis obligé de faire appel à GDI+ car il est le seul à gérer l'alpha blending qui m'est indispensable.
Es-tu vraiment sûr que la rotation de texte est impossible?
Je ne suis vraiment pas sur que cela puisse t'être utile; mais j'aime mieux le signaler que de regretter de ne pas l'avoir. Ce lien mène à un exemple en VB.net. Si tu ne peux pas ou si tu ne veux pas travailler en VB.net, tu peux néanmoins consulter les sources avec n'importe quel éditeur de texte qui lit le format texte (txt). Il y a d'autres fichiers au format xml, sans l'extension xml.