[C API Win32] dialogox et double
tophe03
Messages postés
328
Statut
Membre
-
tophe03 Messages postés 328 Statut Membre -
tophe03 Messages postés 328 Statut Membre -
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
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:
- [C API Win32] dialogox et double
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Double appel - Guide
- Double boot - Guide
5 réponses
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
Essaye avec la fonction strtod
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/strtod.3.html
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.
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.
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question