Appel d'une CDialog en C - C - Programmation
Marsh Posté le 26-10-2005 à 13:48:44
kanabzh29 a écrit : |
Ton type IDD_CHOIXTEST n'est pas reconnu.
Il faut que ton type soit déclaré quelque part. Inclus le fichier .h nécessaire.
kanabzh29 a écrit : |
Ca, ça résulte de ta première erreur. Une fois qu'elle sera corrigée, celle-ci disparaîtra.
Marsh Posté le 26-10-2005 à 13:50:05
heuh bin IDD_CHOIX test c'est pas un type, c'est (a priori) un #define sur un int (d'ou IDD : ID Dialog, comme IDC : ID Control, IDA : ID alacon)
Ca sent l'odieux bricolage, ton truc, la, t'as du salement t'empetré dans des trucs machins
Marsh Posté le 26-10-2005 à 13:53:42
chrisbk a écrit : [...] |
Ca c'est précis
Marsh Posté le 26-10-2005 à 13:58:54
bin deja il nous parle de C alors qu'il fait des MFC
en MFC on a une classe par dialogue, donc normalement il doit connaitre le type de la dialogue qu'il veut instancier.
et apres, effectivement, ca rends :
CMaDialogue truc;
truc.DoModal();
(et pas DoModal() seul, pour ce qu'il veut faire)
Marsh Posté le 26-10-2005 à 14:08:07
Mais quelle maîtrise. Dommage qu'il ne va sûrement rien y comprendre
Marsh Posté le 26-10-2005 à 14:15:01
kanabzh29 a écrit : Bonjour, |
1 - CDialog, c'est des MFC (donc du C++, crade, mais du C++ quand meme)
2 - C++ oblige, tu dois préfixer l'appel de ta méthode par la variable correspondant à l'objet, ce qui donne : Dlg.DoModal();
3 - Apprends le C++, c'est le B-A BA
edit: 4 -
Marsh Posté le 26-10-2005 à 16:42:10
ça y est ça marche, j'ai trouvé tout seul comme un grand, le code donne ceci :
CDialog * chxtest = new CDialog;
chxtest->Create(IDD_CHOIXTEST,NULL);
chxtest->ShowWindow(SW_SHOW);
Citation : 3 - Apprends le C++, c'est le B-A BA |
Désolé mais en BTS IRIS j'apprend le C , pas le C++ alors excuse moi si je suis obligé d'utiliser du C pour mon projet...
Marsh Posté le 26-10-2005 à 16:44:29
- ne pas oublier le "delete chxtest;" en fin de fonction ou dans le destructeur,
- cette manière de faire est utilisée pour créer des dialogs non modales, ie qui ne bloquent pas les autres fenêtres de l'appli
Marsh Posté le 26-10-2005 à 16:46:58
kanabzh29 a écrit : |
dans ce cas, n'utilise pas de toolkits faits pour être utilisés en C++ !
si tu codes en C, utilise Win32 ou GTK
Marsh Posté le 26-10-2005 à 20:29:05
A bas alors la je sais pas, c'est pas moi qui choisi le projet...
Marsh Posté le 27-10-2005 à 10:00:59
on aura décidément tout vu.... après les profs adeptes du fflush(stdin), voici les profs qui mélangent du C et du C++...
Marsh Posté le 26-10-2005 à 12:17:08
Bonjour,
Je n'arrive pas à appeler une CDialog en language C.
Je suis en une première fenètre qui exécute un programme et quand se programme se termine j'aimerais que cela appel une autre CDialog, voila le code que je met :
IDD_CHOIXTEST Dlg;
DoModal();
et la il me met dans le listing des erreurs:
D:\Projet-BTS\prog_mfc\Performance\PerformanceDlg.cpp(135) : error C2146: syntax error : missing ';' before identifier 'Dlg'
D:\Projet-BTS\prog_mfc\Performance\PerformanceDlg.cpp(135) : error C2065: 'Dlg' : undeclared identifier
pourriez vous m'aider. Merci d'avance.