[Résolu] Un GetWindowText qui plante...

Un GetWindowText qui plante... [Résolu] - C++ - Programmation

Marsh Posté le 23-03-2003 à 21:22:47    

J'ai un dialog avec un champ edit, est associé à ce dialogue une classe COptionsDlg. J'ai crée une fonction go() qui permet d'afficher le dialogue et de sauvegarder ce qu'il y a à sauvegarder...Mais quand j'essaye de réupérer la valeur, "debug assertion..." et un crash...

Code :
  1. BOOL COptionsDlg::OnInitDialog()
  2. {
  3. CDialog::OnInitDialog();
  4.         m_pcStartPath = ((CMp3ClinicApp *)AfxGetApp( ))->options.getStartPath();
  5.         //Je récupére ma valeur dans mon objet options  
  6.         ((CEdit*)GetDlgItem(IDC_STARTPATH))->SetWindowText(m_pcStartPath);
  7.         //Je copie ma valeur dans le champ du dialogue
  8.         //Pour tester  
  9.         ((CEdit*)GetDlgItem(IDC_STARTPATH))->GetWindowText(p);
  10.         //La ca marche sans problème
  11. (...)
  12. }
  13. void COptionsDlg::go()
  14. {
  15. if(DoModal()== IDOK)
  16. {
  17.  //Sauvegarde des trucs
  18.                 Copy2Options();
  19.                 (...)
  20. }
  21. }
  22. void COptionsDlg::Copy2Options()
  23. {
  24. ((CMp3ClinicApp *)AfxGetApp( ))->options.setAutoLoad(m_bAutoLoad);
  25. boite("Copy" );
  26. CString buffer;
  27. ((CEdit*)GetDlgItem(IDC_STARTPATH))->GetWindowText(buffer);  //<----------------et voila ou ca crash
  28. ((CMp3ClinicApp *)AfxGetApp( ))->options.setStartPath(buffer);
  29. }


Merci d'avance


Message édité par gooopil le 24-03-2003 à 00:01:57
Reply

Marsh Posté le 23-03-2003 à 21:22:47   

Reply

Marsh Posté le 23-03-2003 à 22:02:42    

Normal tu fait ca apres le DoModal, tes control sont plus valide (si tu test avant tout les CWnd* sont NULL ou plus initialise)

Reply

Marsh Posté le 23-03-2003 à 22:45:22    

Ok ca je savais pas....
Je fais comment pour récupérer ma valeur alors ?

Reply

Marsh Posté le 23-03-2003 à 23:51:40    

Tu la stock avant le WM_DESTROY de ta Dlg ds une variable qui elle sera tj accessible apres le Domodal (tant que tu soprt pas de la fct qui appel domodal donc)


Message édité par VisualC++ le 23-03-2003 à 23:51:54
Reply

Marsh Posté le 23-03-2003 à 23:56:41    

Oki ca marche merci :)
 
A bientot ;)

Reply

Sujets relatifs:

Leave a Replay

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