Calcul de la largeur effective d'une chaine

hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 - 2 déc. 2003 à 10:07
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 - 2 déc. 2003 à 10:42
Bonjour à tous,

je crée une fenetre bouton dans laquelle je vais écrire un texte, et je voudrais savoir s'il y a une méthode pour établir la largeur du bouton en fonction de la longeur de la chaine.

voici ce que j'ai fait :

LOGFONT lf;
GetObject (GetStockObject(SYSTEM_FONT), sizeof(lf), &lf);
lf.lfHeight = 12;
lf.lfWidth = 0;
lf.lfWeight = FW_THIN;	    
lf.lfQuality = PROOF_QUALITY;
strcpy (lf.lfFaceName, "Courrier New");
font_ = CreateFontIndirect(&lf);

....

HWND change_keyboard_hwnd_ = CreateWindowEx (WS_EX_TOOLWINDOW, "BUTTON", name, WS_VISIBLE | WS_CHILD,	 current_x,  title_window_rect_->top,strlen(name)*6), title_window_rect_->bottom, get_handle(), NULL, get_instance_ (), NULL);
SendMessage (change_keyboard_hwnd_ , WM_SETFONT, (WPARAM)font_, TRUE);
::ShowWindow (change_keyboard_hwnd_ , SW_SHOWNA);
::UpdateWindow (change_keyboard_hwnd_ );


Donc, j'ai établi empiriquement que 6* la longueur de la chaine, ca allait pas trop mal, mais j'aimerai donc une fonction qui me retourne exactement la taille qu'il faut

Merci de votre aide

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 déc. 2003 à 10:17
GetTextExtentPoint32 donne cela avec precision.
BruNews, ciao...
0
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
2 déc. 2003 à 10:42
Ca marche nickel, merci bien M. BruNews
0
Rejoignez-nous