|
Connaitre la largeur en pixel d'un texte |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Salut,
Je recherche le moyen de connaître la largeur en pixel d'un texte que je doit inscrire dans un champ image. Merci d'avance.
Contribution le : 12/12/2003 16:25
|
|
|
Re: Connaitre la largeur en pixel d'un texte |
|
Stagiaire WDF
Inscrit: 24/05/2003 17:37
De Houdan
Post(s): 25
|
Bonjour,
Pour connaitre l'espace occupé par un texte j'utilise en C++ l'API :
GetTextExtentPoint32
Je ne l'ai jamais utilisé en WLangage
Voici un extrait de msdn :
GetTextExtentPoint32 The GetTextExtentPoint32 function computes the width and height of the specified string of text.
BOOL GetTextExtentPoint32( HDC hdc, // handle to DC LPCTSTR lpString, // text string int cbString, // characters in string LPSIZE lpSize // string size );
Cordialement
PYT
Contribution le : 16/12/2003 08:39
|
|
|
Re: Connaitre la largeur en pixel d'un texte |
|
Animateur WDF
Inscrit: 26/06/2002 16:24
De wdforge.org
Post(s): 2822
|
Merci PYT, Voici ce que donne WD7 API sur le sujet : VAR_1_HDC est un entier // Type C :HDC
VAR_2_LPCSTR est un entier // Type C :LPCSTR, c'est l'adresse d'une chaîne, il est aussi possible de spécifier directement une chaîne
VAR_3_int est un entier // Type C :int
est un entier // Pointeur sur structure LPSIZE
API("GDI32","GetTextExtentPoint32A",VAR_1_HDC,VAR_2_LPCSTR,VAR_3_int,)
//Code de gestion d'erreur :
//En cas d'échec de la fonction, si le numéro de l'erreur est récupérable par la fonction de l'API "GetLastError",
//il est possible d'utiliser directement la fonction "ErreurInfo()" du W-Langage pour avoir le message complet de l'erreur.
//Cela vous évitera quelques dizaines de lignes de code normalement nécessaires.
//Par exemple dans le cas du retour d'un booléen par la fonction, il faut ajouter le code suivant :
//SI PAS RetourFonction ALORS
// Erreur(ErreurInfo())
// //Traitement en cas d'erreur
//SINON
// //Traitement normal
//FIN
... avec les stuctures //Mettre ces déclarations dans le code d'initialisation (Fenêtre, Projet...)
// Cette structure a été générée automatiquement
// certains types de paramètres peuvent varier
// veuillez vérifier le type des paramètres indiqués !
//********************** Déclaration des structures nécessaires à la fonction de l'API <GetTextExtentPoint32A> :
SIZE est une structure
cx est un entier //Type C : LONG
cy est un entier //Type C : LONG
FIN
//********************** Fin de la déclaration des structures pour <GetTextExtentPoint32A>
Contribution le : 16/12/2003 09:36
|
|
|
Re: Connaitre la largeur en pixel d'un texte |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Merci à tout les deux, vos réponses correspondent avec celles que j'ai trouvé sur le guide des Api Win32 de Dan Appleman's. Mon idée est la suivante pour aider Homer dans sa quête à vouloir mettre plusieurs lignes de libellés dans un onglet.
- utilisé une image invisible dans une fenetre - dessiner une icone dans cette image(possiblité) - calculer la taille la plus grande des lignes d'un libellé de l'onglet afin de redimensionner en conséquence l'image. -de dessiner les libellés dans l'image puis d'affecter l'image à l'onglet. -Cette opération peut être réaliser pour chaque onglet -Les libelle peuvent être de couleur et de taille différent.
Les contraintes qui reste sont: détermination sous l'editeur de la hauteur maximale pour un libellé de l'onglet.
la fonction DrawText permet elle de connaitre la hauteur et et de cadrer un texte dans un cadre.
Contribution le : 16/12/2003 11:10
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.