Bonjour,
Je suis confronte a un probleme recurent dont je n'ai pas la solution.
Je cree une boite de dialogue avec une boite d'edition. (IDC_MYBOX), je lui affecte une variable de type controle (m_MyBox) m_Mybox.EnableWindow(WM_ENABLE), Ces operations fonctionnent avec toutes les fonctions membres (comme InitDialog()) de la classe BoxDialog derive de Dialog.
Par contre, si j'essaie de modifier l'aspect de la boite a l'exterieur de la classe. Impossible. Par exemple dans la classe CAppliDoc, qui contient les codes relatifs aux menus, l'acces aux proprietes de la boite conduit invariablement a une erreur fatale. Impossible a contourner.
J'ai tente de fabriquer une fonction membre public dans CBoxDialog, qui est
et de l'appeler dans le code principal de CAppliDoc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void CBoxDialog::ActiveBoite() //permet l'activation de la boite de dialogue { m_MyBox.EnableWindow(WM_ENABLE); }
Mais ca plante violement a aDlg.ActiveBoite(), je me doute que c'est des histoires de pointeurs et de communications entre classe qui sont ne pas dans la meme branche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void CSectionBADoc::OnChoixSectionquelconque() { CMyBoxDialog aDlg; aDlg.ActiveBoite(); if (aDlg.DoModal() == IDOK) // l'affiche en mode modale { }; }
D'avance merci pour tout deplantage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3erreur: Debug assertion failed winocc.cpp ligne 321
xavier
Partager