Mais oui justement j'aimerai le mettre sur ce fameux InitDialog !
Mais je ne le trouve pas.
C'est le seul probleme que j'ai. Je pense que le reste marche.
Mais oui justement j'aimerai le mettre sur ce fameux InitDialog !
Mais je ne le trouve pas.
C'est le seul probleme que j'ai. Je pense que le reste marche.
C'est bon ! Je l'ai trouvé ce OnInitDialog !
Maintenant, le probleme c'est que la 'formule' pour griser ma checkbox ne fonctionne pas ...
C'est pas ca ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part GetDlgItem (IDC_MOD_CARA)->EnableWindow (false);
Dans le .h:Dans le .cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part /*virtual */BOOL OnInitDialog();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void CPilDialog::OnInitDialog() { CDialog::OnInitDialog(); blablabla; return TRUE; }
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Bah je lance le programme, je lance ma boite de dialogue. Et la Visual me lance gentiment le choix entre plusieurs debuggeurs, qui ne fonctionnent pas trop.
Peux-tu montrer ton OnInitDialog?
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Bien sur :
Je voulais vous remercier pour le temps que vous prenez à me répondre. Surtout que je ne suis pas très bon, et ça doit être assez insupportable pour vous !
Code : 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 BOOL CPilDialog::OnInitDialog() { CString Mod = "DCARA"; CString Chemin = Working_Path + Mod; FILE *Module = fopen (Chemin, "r"); if (Module == NULL)//CAS 1 : SI le module n'existe pas on grise la checkbox { //MessageBox("Pas trouvé"); GetDlgItem(IDC_MOD_CARA)->EnableWindow(false); return(false); } else { MessageBox("Trouvé"); return(true); } }
Merci vraiment !
Essaie ça :
Code : 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 BOOL CPilDialog::OnInitDialog() { CDialog::OnInitDialog(); CString Mod = "DCARA"; CString Chemin = Working_Path + Mod; FILE *Module = fopen (Chemin, "r"); if (Module == NULL)//CAS 1 : SI le module n'existe pas on grise la checkbox { //MessageBox("Pas trouvé"); GetDlgItem(IDC_MOD_CARA)->EnableWindow(false); return(false); } else { MessageBox("Trouvé"); return(true); } }
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 __super::OnInitDialog();
Je ne comprends pas... Tu ne lances pas ton programme en mode Debug depuis Studio ?
Non ça bug toujours ...
Je sais pas pourquoi et ils ne me disent même pas ou j'ai faux, c'est assez insupportable!!
Mais ce n'est pas la syntaxe de cette ligne qui deconne ?
Parce que j'ai regardé sur plusieurs forums, et la syntaxe change tout le temps ... Donc je ne sais pas laquelle prendre!
Code : Sélectionner tout - Visualiser dans une fenêtre à part GetDlgItem(IDC_MOD_CARA)->EnableWindow(false);
Sisi, mais il y a plusieurs erreurs avant la mienne qui ont été faites par d'autre développeurs, et je n'ai pas le droit d'y toucher. Je ne suis qu'un stagiaire ... Et donc je ne peux pas accéder au debuggeur de mes erreurs, je sais c'est difficile à comprendre. Mais disons que le debuggeur ne marche pas ! ... lol
[EDIT] Et puis c'est bien la ligne de 'grisage' de la checkbox qui bug, parce que si je la remplace par une MessageBox, cette dernière apparait, et le programme se lance normalement.
Ben, normalement c'est la bonne ligne. Essaie ça :
Par où passes-tu?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if(GetDlgItem(IDC_MOD_CARA)==NULL){ MessageBox(NULL, "Erreur IDC_MOD_CARA!", "Erreur", MB_OKCANCEL); } else{ MessageBox(NULL, "OK IDC_MOD_CARA!", "OK", MB_OKCANCEL); GetDlgItem(IDC_MOD_CARA)->EnableWindow(false); }
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Désolé pour le temps de réponse, mon estomac m'appelé !
Bah il me lance le MessageBox d'erreur ... Et pourtant l'ID de ma CheckBox est bien : IDC_MOD_CARA...
[EDIT] C'est bon ca marche !!!! En fait les ID de mes checkbox étaient des nombres et je faisais un #define IDC_MOD_CARA 1000 (le nombre 1000 étant l'ID)
Sauf que je me suis gouré dans les nombres à chaque fois j'ai oublié une centaine
Merci pour tout vraiment ! Vous m'avez été d'une grande utilité !!! Je vous remercierai jamais assez !
Nécessité biologique que nous partageons
1/Vérifie que dans ton .rc définissant ta boîte de dialogue, tu as bien un bouton avec le même ID.
2/Vérifie que la valeur IDC_MOD_CARA est bien unique
3/Es-tu en multi-thread?
4/Ta boîte de dialogue est-elle dans une dll ou dans l'exécutable?
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
C'est bon ca marche !!!! En fait les ID de mes checkbox étaient des nombres et je faisais un #define IDC_MOD_CARA 1000 (le nombre 1000 étant l'ID)
Sauf que je me suis gouré dans les nombres à chaque fois j'ai oublié une centaine
Merci pour tout vraiment ! Vous m'avez été d'une grande utilité !!! Je vous remercierai jamais assez ! *
PS : Je l'avais deja mi dans un [EDIT] ce message, mais je flood un peu parce que je suis content![]()
Merci beaucoup !!
![]()
Ba, au moins t'as pu progresser sur OnInitDialog![]()
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Partager