Bonjour
J'aimerai savoir s'il est possible de connaitre l'espace utilisé par un texte dans un CStatic.
Ceci afin de redimensionner le CStatic a son contenu.
Merci
Bonjour
J'aimerai savoir s'il est possible de connaitre l'espace utilisé par un texte dans un CStatic.
Ceci afin de redimensionner le CStatic a son contenu.
Merci
salut,
oui c'est possible tu veux le faire automatiquement ou à la demande ?
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
un truc comme ça devrait suffire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CRect Rect; MyStatic.GetClientRect(&Rect); CDC *pDC=MyStatic.GetDC(); CFont *pFont=MyStatic.GetFont(); CFont *pOldFont=pDC->SelectObject(pFont); CString str; MyStatic.GetWindowText(str); CSize size=pDC->GetTextExtent(str); pDC->SelectObject(pOldFont); MyStatic.ReleaseDC(pDC); MyStatic.SetWindowPos( NULL,0,0,size.cx+2,Rect.Height(),SWP_NOMOVE | SWP_NOZORDER); // uniquement la taille![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Cela fonctionne un peu...
Sur la longueur c'est bon, il retourne bien le width du texte.
mais a une condition, que le texte ne soit pas multilignes... dans ce cas il ne
prend pas en compte les retours chariots et concidere que tout est concaténé.
Et pour la hauteur cela ne fonctionne pas du tout... il me retourne toujours
une valeur beaucoup plus grande que la hauteur de la ligne.
Dois je faire quelque chose d'autre ? car la doc sur GetTextExtent est vraiment limitée.
Je cherche de mon coté mais si quelqu'un connait la solution je suis prenneur
![]()
Merci
ha ben c'est sûr tu n'as pas precisé que c'etait un contrôle multi-ligne...
d'ailleurs pourquoi ne pas activer l'ascenseur dans ce contexte ?
sinon le principe est le même
pour chaque ligne tu calcules la taille de la ligne:
tu cumuls la hauteur et tu ne retiens que la largeur la plus grande.
le setwindows devra utiliser ces valeurs avec quelques pixels en plus .
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Partager