bonjour,

J'ai une exception lorsque je ferme ma boite de dialogue. La boite de dialogue est toute simple. Elle utilise un static text et un gif animé. J'ai vérifié que cela ne venait pas de mon gif animé.

voici le code pour afficher ma boite à l'écran:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
m_toto = new toto_dlg();
m_toto->DoModal();
dans cette classe, je lance mon gif et modifie la valeur du static text dans la methode OnInitDialog():

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
BOOL toto_dlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	m_animate.Load("../animation.gif");
	m_animate.ShowWindow(SW_SHOWNORMAL);
	m_animate.Start();
	this->SetWindowTextA(_T("test"));
 
 
	return TRUE;
}


J'ai egalement une méthode dans ma classe qui permet de ne pas fermer la fenêtre si l'on tape sur les touche entrée ou echap:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
BOOL toto_dlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
   CWnd *pWnd = GetFocus();
    switch(wParam)
    {
      case IDOK: if(pWnd!=GetDlgItem(IDOK))
         {
              return FALSE;
         }
         break;
 
      case IDCANCEL:if(pWnd!=GetDlgItem(IDCANCEL))
		{
			return FALSE;
		}
		break;
    }
 
return CDialog::OnCommand(wParam, lParam);
 
}
et enfin ma méthode de fermeture de ma fenêtre:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
void ARCInit_dlg::OnClose()
{
	m_animate.Stop();
	CDialog:OnOK();
}
J'ai essayé avec les méthode OnOK() et OnCancel() mais toujours pareil.

Pour appeler cette méthode je fais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
m_toto->OnClose();
Après cela, ma fenêtre se ferme correctement mais j'ai une exception.


Quelqu'un aurait il une idée pour resoudre mon problème?

Merci.