Comment trouver la largeur d'une chaîne (en pixels) dans Win32
Pouvez-vous mesurer la largeur d'une chaîne plus exactement dans WIN32 qu'à l'aide de la GetTextMetrics de la fonction et de l'aide d'un*strSize?
source d'informationauteur Razvi
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser GetTextExtentPoint32. Qui utilise la police de caractères courante pour le contexte de périphérique de mesurer la largeur et la hauteur de la chaîne affichée en unités logiques. Pour le mappage par défaut mode, MM_TEXT, 1 unité logique est de 1 pixel.
Toutefois, si vous avez changé le mode de mappage pour l'actuel contexte de périphérique, une unité logique ne peut pas être le même qu'un pixel. Vous pouvez lire les différentes les modes de mappage sur MSDN. Avec le mode de mappage, vous pouvez convertir les dimensions retourné par GetTextExtentPoint32 de pixels.
Je ne sais pas pour certains, mais il semble que:
pourrait fonctionner.
Graphics::MeasureString ?
En fonction de l'utilisation que vous ferez cela, vous pouvez utiliser DrawText avec DT_CALCRECT spécifié et qu'il va (sa toujours fait assez bien pour moi) calculer la taille de la nécessaire rectangle sur la base du texte/police/etc.
Pour Builder C++ d'abord faire de nouveaux TLabel dynamicly et ensuite modifier les attributs de police.Définissez votre TLabel comme autosize.Ensuite, vous pouvez obtenir vous TLabel largeur de la sorcière représente votre chaîne de largeur en pixels.