Bonjour,
Sûrement une question simple, dans une appli VC++ 6.0 de type "Dialog based", comment récupérer dans une classe perso le pointeur sur l'objet de type classe CAppliDlg pour accéder à une de ses méthode membre ?
Merci d'avance
Version imprimable
Bonjour,
Sûrement une question simple, dans une appli VC++ 6.0 de type "Dialog based", comment récupérer dans une classe perso le pointeur sur l'objet de type classe CAppliDlg pour accéder à une de ses méthode membre ?
Merci d'avance
salut,
:DCode:
1
2 static_cast<CAppliDlg *>(AfxGetApp())->MyFunc();
C'est si simple !!
merci beaucoup :lol:
Apparement cela me pose un pb.
1) Permier essai : j'ai ajouté ta ligne en remplaçant CAppliDlg avec le nom de ma classe de type CDialog :
et j'obtiens le message d'erreur suivant (CConvFGP est le nom réel de ma classe CDialog ):Code:static_cast<CConvFGPDlg *>(AfxGetApp())->InsertListBoxMsg(&csMessage);
Aussi, j'ai tenté d'ajouter dans le fichier .h de ma classe perso la ligne suivante :Code:syntax error : identifier 'CConvFGPDlg'
J'obtiens un nouveau message d'erreur :Code:class CConvFGPDlg;
Une idée ..Code:'static_cast' : cannot convert from 'class CWinApp *' to 'class CConvFGPDlg *'
exemple parfait de l'utilité du static_cast...
tu m'a demandé de recuperer le pointeur sur ta classe d'application ,c'est ce que j'ai écris.
le reste je ne sais pas ce que tu fais ...
une chose est sûre ta classe CConvFGPDlg n'est pas la classe d'application d'ou l'erreur indiquée par le static_cast...
:D
J'ai crée une application MFC, simple, de type "Dialog based".
Mon projet s'appelle ConvFGP.
Deux classes ont donc été créées automatiquement :
CConvFGPApp Ma classe Application
CConvFGPDlg La classe associée à ma boite de dialogue.
Dans cette dernière j'ai ajouté une méthode qui s'appelle InsertListBoxMsg() qui permet d'insérer des messages dans un contrôle de type CListBox.
J'ai crée une classe perso de traitement de fichiers "CFichierFGP" au sein de laquelle je souhaite effectuer des mises à jour sur le contrôle CListBox de ma boite de dialogue en appelant sa méthode InsertListBoxMsg().
Suis je assez clair ?
oui, pour disposer de la classe fenetre de l'application pour une application boite de dialogue:
:DCode:
1
2 static_cast< CConvFGPDlg *>(AfxGetMainWnd())->InsertListBoxMsg(&csMessage);
Ca passe.
j'ai eu quelques soucis mais je n'avais pas ajouté l'include du fichier "ConvFGPFlg.h en en-tête de ma classe CFichierFGP.
Merci encore.