Appel d'une CDialog en C

Appel d'une CDialog en C - C - Programmation

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.

Reply

Marsh Posté le 26-10-2005 à 12:17:08   

Reply

Marsh Posté le 26-10-2005 à 13:48:44    

kanabzh29 a écrit :


D:\Projet-BTS\prog_mfc\Performance\PerformanceDlg.cpp(135) : error C2146: syntax error : missing ';' before identifier 'Dlg'


 
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 :


D:\Projet-BTS\prog_mfc\Performance\PerformanceDlg.cpp(135) : error C2065: 'Dlg' : undeclared identifier


Ca, ça résulte de ta première erreur. Une fois qu'elle sera corrigée, celle-ci disparaîtra.

Reply

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

Message cité 1 fois
Message édité par chrisbk le 26-10-2005 à 13:50:35
Reply

Marsh Posté le 26-10-2005 à 13:53:42    

chrisbk a écrit :

[...]
Ca sent l'odieux bricolage, ton truc, la, t'as du salement t'empetré dans des trucs machins


Ca c'est précis :D

Reply

Marsh Posté le 26-10-2005 à 13:58:54    

bin deja il nous parle de C alors qu'il fait des MFC [:pingouino]
 
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)

Reply

Marsh Posté le 26-10-2005 à 14:08:07    

Mais quelle maîtrise. Dommage qu'il ne va sûrement rien y comprendre [:ocube]


Message édité par godbout le 26-10-2005 à 14:08:26
Reply

Marsh Posté le 26-10-2005 à 14:15:01    

kanabzh29 a écrit :

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.


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 - [:benou_grilled]


Message édité par Harkonnen le 26-10-2005 à 14:15:31
Reply

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...

Message cité 1 fois
Message édité par kanabzh29 le 26-10-2005 à 16:44:21
Reply

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

Reply

Marsh Posté le 26-10-2005 à 16:46:58    

kanabzh29 a écrit :


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...


dans ce cas, n'utilise pas de toolkits faits pour être utilisés en C++ !
si tu codes en C, utilise Win32 ou GTK

Reply

Marsh Posté le 26-10-2005 à 16:46:58   

Reply

Marsh Posté le 26-10-2005 à 20:29:05    

A bas alors la je sais pas, c'est pas moi qui choisi le projet...

Reply

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++... :pfff:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed