sliders75
Messages postés11Date d'inscriptionjeudi 9 mars 2006StatutMembreDernière intervention19 avril 2006
-
10 avril 2006 à 12:55
sliders75
Messages postés11Date d'inscriptionjeudi 9 mars 2006StatutMembreDernière intervention19 avril 2006
-
11 avril 2006 à 08:06
Bonjour,
J'ai un projet MFC avec une classe CFormulaire de type CFormview (Formulaire.cpp), et dans cette classe, j'ai une fonction void Ajouter()
Cette fonction ajoute des éléments dans une listbox et elle marche parfaitement lorsque je l'appelle directement dans Formulaire.cpp
Mais j'ai besoin d'appeler cette fonction dans la classe CWinApp, pour cela j'ai essayé :
CFormulaire* formu;
formu->Ajouter();
Mais ça ne marche pas, il y a une erreur lors de l'exécution.
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
sliders75
Messages postés11Date d'inscriptionjeudi 9 mars 2006StatutMembreDernière intervention19 avril 2006 10 avril 2006 à 14:58
Merci Bruno, mais malheureusement ça ne marche pas, j'explique :
j'ai donc essayé
CFormulaire * formu = (CFormulaire *)GetDlgItem(IDD_FORMVIEW);
et VC++ me met une erreur à la compilation : il manque un paramètre pour GetDlgItem, et effectivement, dans l'aide, je vois qu'il faut le handle de la fenêtre en premier paramètre.
Question : j'ai bien trouvé l'ID : IDD_FORMVIEW (dans le fichier Formulaire.h) mais je n'ai pas trouvé son handle, où puis-je le trouver ?
Je précise que j'ai créé la classe Formulaire de type CFormView de manière automatique avec class wizard...
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 10 avril 2006 à 15:04
Est-ce que ton formulaire est un membre d'une classe plus global (genre dialog)? Si oui, quand tu crée ton formulaire, tu peux sauvegarder son handle
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 10 avril 2006 à 15:24
OK, mais sa création se fait bien quelque part? Avec la fonction CreateDialog?
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
sliders75
Messages postés11Date d'inscriptionjeudi 9 mars 2006StatutMembreDernière intervention19 avril 2006 10 avril 2006 à 15:40
Pour créer la classe Formulaire,
Je suis allé dans View => classwizard => add class => new
Name : CFormulaire
Base Class : CFormView
Dialog ID : IDD_FORMVIEW
ensuite j'ai créé graphiquement la listbox dans le menu ressources => dialog de VC++
et j'ai affecté l'ID IDC_LIST1 à la listbox
Donc tout a été créé automatiquement et dans le code je ne vois pas de fonction du style CreateDialog.
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 10 avril 2006 à 15:51
Bon...
Et tu dis que GetDlgItem() ne va pas?
Si tu fais: CWnd::GetDlgItem(IDD_FORMVIEW) ?
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 10 avril 2006 à 16:23
Où essaies-tu d'appeler ta fonction Ajouter()? En gros, est-ce que ton formulaire est accessible à cet endroit?
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
sliders75
Messages postés11Date d'inscriptionjeudi 9 mars 2006StatutMembreDernière intervention19 avril 2006 10 avril 2006 à 16:38
L'application ouvre un fichier texte puis l'affiche dans une listbox (la classe formulaire)
c'est donc dans la fonction OnOpenFile() de la classe de l'application (la classe CWinApp) que j'appelle la méthode ajouter de la formview. Je pense que mon formulaire y est accessible, j'ai bien sur fait #include formulaire.h
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 10 avril 2006 à 16:52
Alors essaie ceci:
CFormulaire * formu = (CFormulaire *)theApp->GetDlgItem(IDD_FORMVIEW);
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
sliders75
Messages postés11Date d'inscriptionjeudi 9 mars 2006StatutMembreDernière intervention19 avril 2006 11 avril 2006 à 08:06
quand je mets
CFormulaire * formu = (CFormulaire *)theApp->GetDlgItem(IDD_FORMVIEW);
j'ai le message suivant :
type 'CNouveauApp' does not have an overloaded member 'operator ->'
et quand je mets
CFormulaire * formu = (CFormulaire *)theApp.GetDlgItem(IDD_FORMVIEW);
j'ai le message suivant :
error C2039: 'GetDlgItem' : is not a member of 'CNouveauApp'