[C API Win32] dialogox et double

Fermé
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 - 22 août 2006 à 22:27
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 - 26 août 2006 à 02:14
Bonjour

J'essaie de récupérer un double à partir d'une boite de dialogue. Pour récupérer un entier, j'ai pas de souci. Mais récupérer un double, j'avoue que je sèche.
Si qqn à la solution...

Merci
A voir également:

5 réponses

tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 5
23 août 2006 à 19:30
Il n'y a personne pour voler à mon secours?
0
Radek Messages postés 22 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 7 septembre 2006 6
24 août 2006 à 09:52
C'est peut etre que personne ne comprends ce que tu veux faire ...
Essaye avec la fonction strtod

http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/strtod.3.html
0
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 5
24 août 2006 à 21:30
salut

J'ai essayé avec strtod et atof et j'ai toujours le même problème : seul le premier caractère est pris en compte.
Voilà ce que je fais:

dans la procédure de dialogue:

case WM_COMMAND:
{
if (LOWORD(wParam) == IDOK )
{

char *string3;
string3 = (char*)malloc(256*sizeof(char));

GetDlgItemText(hDlg, IDE_EDIT3, string3, 256);
EndDialog(hDlg, *string3);
}
return TRUE;
}

dans la procédure de fenêtre:

double *coef;
coef = (double*)malloc(sizeof(double));
char *string3;
string3 = (char*)malloc(256*sizeof(char));

*string3 = DialogBoxParam(hinst, "DIALOG4", hEdit, (DLGPROC)Dialog4Proc, (LPARAM)hEdit);
coef = atof(string3);
free(string3);

Vu que je suis débutant, je comprends pas trop ce qu'il se passe.
0
Radek Messages postés 22 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 7 septembre 2006 6
25 août 2006 à 11:35
dans la procédure de fenêtre:

double *coef;
coef = (double*)malloc(sizeof(double));
char *string3;
string3 = (char*)malloc(256*sizeof(char));

*string3 = DialogBoxParam(hinst, "DIALOG4", hEdit, (DLGPROC)Dialog4Proc, (LPARAM)hEdit);
coef = atof(string3);
free(string3);

Vu que je suis débutant, je comprends pas trop ce qu'il se passe.


quoi ??? oula !!!! Et tu ne comprends pas trop ce que tu fais je pense ... ;-)

Bon y a du boulot.
Avant de te lancer tête baissée dans la programmation un peu de lecture serait nécessaire :

pour API WIndows : https://chgi.developpez.com/windows/

Et surtout essai de prendre un bouquin sur le C, parce que la faut tout reprendre à la base ...
Rien que pour la déclaration de coef, tu n'as pas besoin de le déclarer en pointeur et d'utiliser malloc !
dans la procédure de fenêtre:

double coef;
char *string3;
string3 = (char*)malloc(256*sizeof(char));

/* .... remplissage de string3 */

coef = atof(string3);
free(string3);


Ca ca marche très bien !

De plus si tu fais :
*string3 = ....;


Tu ne vas remplir que le premier caractère de ta chaine de caracteres string3, car *string3 est equivalent à string3[0] !!!

Et enfin DialogBoxParam ne s'utilise pas comme ca !
Va faire un tour sur le lien que je t'ai donné et en particulier :
https://chgi.developpez.com/windows/dlgcom/

Bon courage...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 5
26 août 2006 à 02:14
salut

merci pour tes conseils
je me disais bien que il y avait qui clochait au niveau des pointeurs
le tuto sur les api je connais
mais je ne vois quand meme pas comment récupérer un double à partir de la boite de dialogue, je veux l'utiliser ensuite pour des calculs

tophe
0