Dessiner du texte sur plusieurs ligne VB6

Résolu
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 28 juil. 2009 à 16:01
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 30 juil. 2009 à 09:42
Salut à tous.

OUaou, je ne reconnais plus rien

Bravo.

Bon revenons à nous moutons.

J'ai un petit UserControl qui possède une propriété Caption
Jusqu'à présent j'utilise DrawStateString pour dessiner le texte dans mon UserControl.

Problème si mon UC est trop petit pour contenir le texte, le texte dépasse du control.

Ma question est donc la suivante, existe t il une méthode simple pour dessiner sur plusieurs lignes (une API miracle).
Peu etre est il inutile de passe par DrawStateString.

Je mesure déjà la taille de mon texte pour le placer dans le UC en fonction d'une orientation.

Un peu d'aide ou un petit lien ne seraient pas de refus.
En attendant Google is my Friend

Tchao
Julien

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juil. 2009 à 08:12
DrawText le fais, en préscisant un DT_MULTILINE et un RECT adéquat, qui le forcera a passer sur plusieurs lignes.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 juil. 2009 à 08:50
salut,

Jack -> autre manière sans objet (pour la taille) :
cette classe

JRivet -> d'accord avec Renfield : drawtext (ou draxtextex) fonctionne avec les flags de ton choix
un exemple ici, fonction MyDrawText ligne 417

++

[hr]
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 juil. 2009 à 17:24
Salut
Non, c'est à toi de le gérer.
Une solution simple que j'utilise :
Il faut pouvoir savoir à l'avance la taille en twips du texte.
Pour le calculer facilement, il suffit de mettre une PictureBox "picTestFonte" (invisible en run) sur la forme.
Tu donnes à cette picTestFonte la même fonte (nom, taille, effets ...) que celle avec laquelle tu veux écrire.
Quand tu veux connaitre la taille :
Longueur = picTestFonte.TextLength("mon texte qui risque de dépasser")

En mettant ça dans une boucle en ajoutant progressivement les mots qui composent ton texte (Split sur espace, par exemple), tu arriveras à découper ton texte

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 juil. 2009 à 09:42
Salut
Ok je me suis débrouillé avec DrawText. Merci pour le tuyau.
@+

Julien
0
Rejoignez-nous