Bonjour , je suis débutant en visual Basic , je cherche à mettre dans un tableau de taille quelconque des nombres et déterminer le minimum et la maximum .Mais je voudrais le faire à l'aide d'une fenêtre(pas de souci pour générer ma fenêtre ) . En fait , à la saisie du premier nombre , on affiche un message à l'utilisateur pour lui demander si il veut continuer , tant que l'utilisateur dit oui , la même fenêtre doit apparaître pour lui permettre de saisir la nouvelle valeur . Mon problème se situe à deux niveaux ,
1-Quand bien même la fenêtre s'affiche lorsqu'il dit qu'il veut continuer ,mais quand il saisit la nouvelle valeur, elle ne s'incrémente pas dans mon tableau .En fait , tous les chiffres saisis se mettent à l'indice 0 du tableau . Et quand j'essaie d'afficher les valeurs du tableau situées au délà de l'indice 0 , ça me ramène de gros chiffres , comme si mon tableau n'était pas initialisé pour tant il est bien intialisé .
Je voudrais donc que vous m'aidier à écrire ma fonction de type callback qui va mettre les valeurs saisies dans un tableau de taille N tout en m'affichant la boîte de dialogue si l'utilisateur saisit OK .
Voici ma fonction
Code visualC++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 LRESULT CALLBACK chercheminmax(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { int tab[]={0} , i=0 ,val=0 ; char contenu[11] , contenu2[11]; switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: // if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) if (LOWORD(wParam) == ID_VALIDER) { GetDlgItemText(hDlg,IDC_NOMBRE,contenu,11 ) ; val= atoi(contenu); tab[i++]= val; sprintf(contenu2,"Val vaut %d",i); MessageBox(hDlg ,contenu2 , "Message",MB_OK ); //écriture du Code } if (LOWORD(wParam) == ID_ANNULER) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; } break; } return FALSE; }
Partager