Bonjour à tous,
j'ai un TListView dans lequel j'insère des éléments, et je voudrais redimensionner une colonne de la taille de la plus longue chaine.
Problème: comment obtenir cette taille en pixels?
Merci d'avance!!
Bonjour à tous,
j'ai un TListView dans lequel j'insère des éléments, et je voudrais redimensionner une colonne de la taille de la plus longue chaine.
Problème: comment obtenir cette taille en pixels?
Merci d'avance!!
Bonjour,
j'ai une astuce que j'ai utilisé pour redimensionner un TEdit selon la taille de la chaîne qu'on inserre dedans. En fait c'est simple: j'ai posé un TLabe dont les propriétés Visible=false et AutoSize=true. Ensuite il suffit de dire :
Essayes voir pour tes colonnes, ça doit marcher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MonLabel->Caption = "MonText"; MonEdit->Length = MonLabel->Length();
Bon courage
Salut
Tu as cette fonction, si tu es sous Windows :
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
);
Parameters
hdc
[in] Handle to the device context.
lpString
[in] Pointer to a buffer that specifies the text string. The string does not need to be zero-terminated, because the cbString parameter specifies the length of the string.
cbString
[in] Specifies the length of the lpString buffer. For the ANSI function it is a BYTE count and for the Unicode function it is a WORD count. Note that for the ANSI function, characters in SBCS code pages take one byte each, while most characters in DBCS code pages take two bytes; for the Unicode function, most currently defined Unicode characters (those in the Basic Multilingual Plane (BMP)) are one WORD while Unicode surrogates are two WORDs.
Windows 95/98/Me: This value may not exceed 8192.
lpSize
[out] Pointer to a SIZE structure that receives the dimensions of the string, in logical units.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero.
Windows NT/2000/XP: To get extended error information, call GetLastError.
Salut !
Voici une solution simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part AnsiString A = "Hello world !";
Au cas où les Fonts seraient différentes (Form/ListView)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Form1->Canvas->Font->Assign(ListView1->Font); int largeur_du_texte = Form1->Canvas->TextWidth(A);
A plus !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager