cs_WSAL74
Messages postés10Date d'inscriptionmardi 1 mars 2005StatutMembreDernière intervention13 avril 2007
-
19 mars 2007 à 18:10
cs_WSAL74
Messages postés10Date d'inscriptionmardi 1 mars 2005StatutMembreDernière intervention13 avril 2007
-
13 avril 2007 à 17:55
Bonjour à tous et toutes
voila je suis nouveau en VB mais expérimenté en VBA, j'ai en cours un projet d'un jeu dans lequel j'ai besoin de mettre du texte en vertical, diagonal et horizontal. Ces textes sont personnalisable.
Pour ce qui est des textes horizotal (aux je c'est pas ;-) ) je pensait utilisé un simple label mais pour le reste cela ce complique.. Exicte-t-il un controls avec la possibilité de régler l'orientation du texte ci oui lequel et ou le trouver????
Ce controls n'est que de l'affichage de texte il n'aura aucune fonction autre.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 19 mars 2007 à 18:22
Bonjour,
Aucun contrôle ne possède, "en soi" une propriété permettant l'orientation du texte qu'il affiche
Il Te faudra donc soit afficher directement sur la Form, soit dans une pictureBox, soit enfin en donnant à un contrôle ayant sa propriété Style à Graphical une propriété Picture correspondant à une picturebox invisibe dans laquelle tu aurais pré-dessiné ton texte et dont les dimentions seraient identiqsues à celles de ton contrôle.
Pour y parvenir, il te faut passer par des fonctions de l'API de windows...
Tu dis que tu es nouveau en VB6... et je ne suis pas certain que ce soit là la meilleure façon de débuter...
Si tu y tiens toutefois vraiment, je te donnerai le code à écrire pour provoquer une "rotation" de texte. Il te faudra le comprendre et en extirper et adapter ce qui t'intéresse... ce ne sera pas facile, facile, toutefois, pour un débutant !
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 19 mars 2007 à 19:18
peut-être en changeant les coordonnées du monde.
Const GM_ADVANCED As Long = 2
Private Type XForm
eM11 As Single
eM12 As Single
eM21 As Single
eM22 As Single
eDx As Single
eDy As Single
End Type
Private Type RectAPI
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type PointAPI
X As Long
Y As Long
End Type
Private Declare Function SetViewportOrgEx Lib "gdi32" (ByVal hDC As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As PointAPI) As Long
Private Declare Function SetGraphicsMode Lib "GDI32.dll" (ByVal hDC As Long, ByVal iMode As Long) As Long
Private Declare Function GetWorldTransform Lib "GDI32.dll" (ByVal hDC As Long, ByRef lpXform As XForm) As Long
Private Declare Function SetWorldTransform Lib "GDI32.dll" (ByVal hDC As Long, ByRef lpXform As XForm) As Long
Private Sub Command1_Click()
Const Pi As Single = 3.14159
Dim RotAng As Single
Dim RotRad As Single
Dim WndArea As RectAPI
Dim OldOrg As PointAPI
Dim OldMode As Long
Dim OldXForm As XForm
Dim MyXForm As XForm
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 19 mars 2007 à 20:28
t'es sûr que c'est une PictureBox ???
je pensais qu'il n'y en avait pas en VBA
l'exemple ci-dessus était sur la forme directement
sinon il faut un contrôle avec un hdc, et changer Me par le nom de ton controle:
Me.hDc, Me.CurrentX, Me.CurrentY, Me.Print
bien chosir l'origine du monde en fonction de tes besoins:
Call SetViewportOrgEx(Me.hDC, 100, 100, OldOrg)
le point 100,100 (en pixels) devient la nouvelle origine.
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 19 mars 2007 à 21:01
oui il y a une autre méthode avec les APi, il faut créer sa police avec CreateFont
mais je la trouve plus compliquée et je préfère passer par les coordonnées du monde (ça s'appelle comme ça)
ça marche avec tout ce qui est graphique, même avec les images
ne pas oublier de mettre AutoDraw à True.
cs_WSAL74
Messages postés10Date d'inscriptionmardi 1 mars 2005StatutMembreDernière intervention13 avril 2007 19 mars 2007 à 18:39
Tous d'abord merci à jmfmarques et à exploreur.
En faite je vais être un peu plus précis. Je crée pour le fun une variante du monopoly je veux que le joueur puisse par exemple créer un plateau avec les rue de sa ville ou sont patelin perdu s'il le souhaite (le tous bien evidement à des fin non commercial). Ces réglage sont stocker dans une feuille excel. j'ai déja bien avancé le projet en code VBA mais j'ai bloquer sur le même problème en VBA et n'est pas trouver de solutions.
jmfmarques :
Je n'est pas trés bien compris ce que tu voulais dire par :
Il Te faudra donc soit afficher directement sur la Form, soit dans une pictureBox, soit enfin en donnant à un contrôle ayant sa propriété Style à Graphical une propriété Picture correspondant à une picturebox invisibe dans laquelle tu aurais pré-dessiné ton texte et dont les dimentions seraient identiqsues à celles de ton contrôle.
exploreur :
Merci beaucoup je vais essayer de comprendre et de tester.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 19 mars 2007 à 18:45
Holà !
C'est seulement maintenant que tu nous dis développer sous VBA !!!!
Alors : oublie donc tout ce qui a été dit précédemment (le lien d'exploreur et mon baratin).
A moins, sous VBA, de te lancer dans du super compliqué, tu n'y parviendras pas avec ce qui t'a été dit; c'est sur !
IL EST IMPORTANT DE "POSTER" DANS LA BONNE SECTION (tu t'en rends maintenant bien compte)
Regarde si tu peux t'arranger avec l'insertion d'un objet OLE tel WordArt.
cs_WSAL74
Messages postés10Date d'inscriptionmardi 1 mars 2005StatutMembreDernière intervention13 avril 2007 19 mars 2007 à 18:57
Re-
J'ai choisit de passer sous VB plutot que sous VBA pour la souplesse d'utilisation des fonction de redimentionnement de fenêtre. Je me suis dit que cela me permettrai en plus de m'aider à utilisé un nouveau language (pas si différent d'ailleur.) Comme je l'ai dit plus haut c'est pour le fun pas pour la simplicité car infograme à déja créer cela avec des pions animé et tous.
C'est vraiment par plaisir sadic envers mes méninges que je fait cela.
JE ne sais pas si je vais m'en sortir mais bon on verra bien..
En tous cas merci de votre patience et de votre temps. AU fait pour ce qui est de l'accepation, cela géne pour poster d'autre message ou pas?
cs_WSAL74
Messages postés10Date d'inscriptionmardi 1 mars 2005StatutMembreDernière intervention13 avril 2007 20 mars 2007 à 19:40
Salut daniel et les autres
Désolé pour la réponse tardive mais hier j'avais les yeux explosé a force de lire du code...
Je pense que je vais essayer avec les coordonnées de monde et la fonction print.
Si d'autre on des idées car mon "usine à gaz" rique d'être très lourde en memoire et en gestion mais bon j'ai tendance naturellement à me compliquer la vie et à "utilisé le rouleau comprésseur pour tuer la mouche là où suffirait la tapette" comme on dit.
cs_WSAL74
Messages postés10Date d'inscriptionmardi 1 mars 2005StatutMembreDernière intervention13 avril 2007 13 avril 2007 à 17:55
Salut à tous
Bon voilà j'ai réussi à m'en sortir avec ces coordonnées de monde mais
ce n'était pas facile car la position relative du premier caractére
dépend de l'angle.