Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2094 connectés 

  FORUM HardWare.fr
  Programmation
  API Win32

  [Static Control] NOWORDWRAP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Static Control] NOWORDWRAP

n°2020332
neolistic
Posté le 01-09-2010 à 10:38:59  profilanswer
 

Bonjour,
 
je cherche à utiliser un contrôle static multi-lignes. L'option SS_LEFTNOWORDWRAP fonctionne bien, j'ai mon texte sur plusieurs lignes.
Cependant je cherche à connaître sur combien de lignes est affiché mon texte dans le contrôle afin d'ajuster la hauteur du contrôle pour que la totalité soit visible.
 
Est ce que vous connaissez un moyen de connaître le nombre de lignes affichées dans le contrôle?
 
Merci beaucoup pour votre aide.

mood
Publicité
Posté le 01-09-2010 à 10:38:59  profilanswer
 

n°2020375
olivthill
Posté le 01-09-2010 à 12:12:37  profilanswer
 

Comme il est indiqué dans la documentation sur les contrôles statiques, http://msdn.microsoft.com/en-us/library/ms997560.aspx , l'affichage du texte est réalisé, en sous-main, par l'une des trois fonctions :
 
- TextOut si SS_SIMPLE sans SS_NOPREFIX
- ExtTextOut, si SS_SIMPLE avec SS_NO_PREFIX
- DrawText, dans les autres cas.
 
Le cas le plus courant est le dernier. Pour connaitre la taille occupée par un DrawText, il y a un moyen qui est l'utisation de DrawTextEx avec le paramètre DT_CALCRECT. Voir la doc http://msdn.microsoft.com/en-us/li [...] S.85).aspx . Quand DrawTextEx est utilisée avec DT_CALCRECT, le texte n'est pas affiché, il y a seulement la taille du rectangle englobant, qui est calculée.
Si c'est un TextOut, alors la même solution devrait marcher aussi, ou bien on peut utiliser GetTextExtentPoint32, ou on peut additionner soi-même la taille de chaque caractère que l'on aura récupéré avec GetCharABCWidths.
Je conseille le DrawTextEx avec DT_CALCRECT. Je l'ai testé et il marche bien.
 
Cependant, je crois, mais je n'en suis pas certain, qu'il y aura un petit travail supplémentaire à faire, qui est de sélectionner la bonne police de caractères au préalable (comme d'habitude, par exemple avec un CreateFont et ses 14 paramètres, et un SelectObject), et encore avant cela, il faudra récupérer la police système et la taille par défaut pour les contrôles statiques.  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  API Win32

  [Static Control] NOWORDWRAP

 

Sujets relatifs
question sur static et multithreadSCADA:supervisory control and data acquisition
lib shared, optim facon static ?static_cast<> mal compris ?
FUNCTOR vs staticAffichage control UpDown
MFC, ip adress controlMethode static
Propriété + dropdownList dans un controlstatic_cast objet fille pointeur
Plus de sujets relatifs à : [Static Control] NOWORDWRAP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR