Text vertical [Résolu]

Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- - Dernière réponse : Charles Racaud
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 29 avril 2005 à 19:04
Bonjour.

Je voudrai afficher du texte vertical comme dans le menu démarrer.
Mais il faudrai qu'il s'affiche comme on fais pour la fonction 'print'
C'est a dire avec left et top et le laisse font transparent et sans ocx ou dll
Bref, comme si on appelais 'print' et que le texte s'écris verticalement

ChR
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
192
Date d'inscription
vendredi 2 mars 2001
Dernière intervention
10 janvier 2006
3
Merci
Pour écrire verticalement il faut que tu passes bien evidemment par les APIs et dans un élan de générosité je vais te donner un petit bout de code ki te permet d'afficher un texte "verticalement"! J'ai retrouvé ce petit bout de code ke j'avais fait il y'a plus d'un an pour un certain pcpunch! :p

Voici donc ::

'---Les APIs
Private Declare Function GetDeviceCaps Lib "GDI32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
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 DeleteObject Lib "GDI32" (ByVal hObject As Long) As Long
Private Declare Function TextOut Lib "GDI32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Integer, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function SetMapMode Lib "GDI32" (ByVal hdc As Long, ByVal nMapMode As Long) As Long
Private Declare Function SelectObject Lib "GDI32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Const MM_LOMETRIC = 2
Private Const LOGPIXELSY = 90
Dim HFont As Long, HFontOld As Long, MapModePrevious As Long

'---La structure de stockage du texte

Private Type TexteV
Texte As String
x As Integer
y As Integer
Police As String
Italique As Boolean
Gras As Boolean
Souligne As Boolean
Barre As Boolean
Taille As Integer
Angle As Integer
End Type

dim Texte as TexteV

'---La procédure d'affichage du texte
sub DrawAngleText()

pic.currentx=x
pic.currenty=y

with Texte

MapModePrevious = SetMapMode(Pic.hdc, MM_LOMETRIC)
HFont = CreateFont(.Taille, 0&, .Angle, .Angle, CInt(.Gras), CInt(.Italique), CInt(.Souligne), CInt(.Barre), 0&, 0&, 0&, 0&, 0&, .Police)
HFontOld = SelectObject(Pic.hdc, HFont)
TextOut Pic.hdc, 4 * .x, -4 * .y, .Texte, Len(.Texte)
SetMapMode Pic.hdc, MapModePrevious
SelectObject Pic.hdc, HFontOld
DeleteObject HFont

end with

end sub

'---Création du texte
sub Form_Load()

With Texte
.Texte = "Bonjour Madame!"
.Police = "Arial"
.Taille = Int(Rnd * 200)
.Angle = -450
.x = Int(Rnd * Pic.ScaleWidth / 2)
.y = Int(Rnd * Pic.ScaleHeight / 2)
End With

end sub

Voila tout, donc bien évidemment il te faut un picturebox de préférence a fond blanc car par défaut on écrait en noir, enfin ca c a toi de voir en changeant les propriétés forecolr et backcolor du picturebox! Donc normalement ce petit exemple marche, je l'ai retouché histoire de raccourcir ce ke j'avais déja!

Have a Good Code
#
Geff >:)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Messages postés
10
Date d'inscription
lundi 24 janvier 2005
Dernière intervention
26 septembre 2005
3
Merci
Oulala que de complexitude:
moi charles je me sers de ca:

Public Sub RotateStr(ByVal g As System.Drawing.Graphics, ByVal Texte As String, ByVal Pt0 As PointF, ByVal RectString As RectangleF, ByVal MyFont As Font, ByVal Brush As Brush, ByVal Angle As Int16)
Dim gContainer As System.Drawing.Drawing2D.GraphicsContainer
Dim myMatrix As Drawing2D.Matrix
gContainer = g.BeginContainer()
myMatrix = g.Transform()
myMatrix.RotateAt(Angle, Pt0, Drawing2D.MatrixOrder.Append)
g.Transform = myMatrix
g.DrawString(Texte, MyFont, Brush, RectString)
g.EndContainer(gContainer)
End Sub

j'y fais appel kom ca:

RotateStr(MonObjetGraphique,"texte vertical", MonPointF, MonRectangleF, MaPolice, MaBrosse, 90)

Voila si ca peut aider.. j'ai passé du temps à trouver un truc kom ca

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Messages postés
1475
Date d'inscription
samedi 13 mars 2004
Dernière intervention
5 mai 2010
97
0
Merci
Il y a des source squi font ça sur le site
Messages postés
1475
Date d'inscription
samedi 13 mars 2004
Dernière intervention
5 mai 2010
97
0
Merci
Bravo Geff !
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
Merci Geff

ChR
Messages postés
192
Date d'inscription
vendredi 2 mars 2001
Dernière intervention
10 janvier 2006
0
Merci
dals,
Il me semble que ta réponse concerne la technologie .net, donc elle ne convient pas à VB6, mais en effet pour VB.net l'écriture d'un texte oblique est bien plus aisé. Merci pour ta contribution pour VB.net


<HR>

main(k){float i,j,r,x,y=-16;while(puts(""),y++<15)for(x
0;x++<84;putchar(" .:-;!/>)|&IH%*#"[k&15]))for(ik=r=0;
j=r*r-i*i-2+x/25,i=2*r*i+y/10,j*j+i*i<11&&k++<111;r=j);}

# GEFF
Messages postés
10
Date d'inscription
lundi 24 janvier 2005
Dernière intervention
26 septembre 2005
0
Merci
ok pas de P!

C'est quand même pas top d'avoir mélangé les 2 VB sur un même forum: j'avais pas vu que le topic étais uniquement pour VB6
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
35
0
Merci
Je suis passé au .NET depuis quelques temps déjà
Le code de dals me convient donc parfaitement
Donc
Merci Beaucoup dals

ChRb

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.