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.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Canvas->TextWidth(Chaine)
Site : http://chgi.developpez.com
Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)
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 !
Partager