solidsnake88
Messages postés27Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention13 novembre 2006
-
25 oct. 2006 à 00:35
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 2016
-
25 oct. 2006 à 22:37
Bonjour à tous.
APrès une journée passé sur le problème je me résoud à vous en faire
part. J'ai une Dialog Box (DB) que je rempli de bouton et patati et
patata pas de problème avec vc++ ca va trés vite. Enfin un bon point
pour Visual que je suis en train de découvrir. Puis je créé une autre
DB (appelons la CTest)avec le super menu insérer dialog je lui
superpose une classe. Je fais la "substituion" de OnInitDialog et je
crée cette fenêtre à partir de ma fenêtre principale avec la ligne :
CTest fenetre; //Creation
fenetre.DoModal();
Là encore tout va bien. Et la arrive le problème je veux recuperer des valeurs qui sont dans la boite de dialogue. D'apres ce que je pense j'ai plusieurs possibilités. La premiere avoir des menbres publics et y faire reference dans la boite mere mais c'est pas tres bien au niveau du cloisenement du code. J'ai alors pensé a faire des getters pour recuperer les variables. Et en fait tout marche pour les variables style int i... Mais par contre je ne peut pas appeller dans un de ces getters la fonction this->GetWindowRect(). Je tombe invariablement sur une erreur me disant que le fichier afxwin2.inl possede une assertion qui ne passe pas a la ligne 105. Avoir de plus pres il y a une ASSERT qui test et qui dit que ma fenetre n'a pas de handle. Alors que cette meme fonction getwindowrect fonctionne parfaitement lors de l'initDialog..... Est ce que lorsque je clic sur ok le this est detruit et donc ca plante? Mais alors pourquoi peut on encore acceder au variable depuis la fenetre principale en faisant fenetre.variable; . Conclusion : comment faire pour recuperer ses coordonnees.
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 20218 25 oct. 2006 à 08:51
Après avoir cliquer sur OK, la fenêtre se ferme et le handle disparait; par contre l'objet existe. Ceux sont les handles des contrôles qui n'existent plus, dans initdialog tous les handles des contrôles existent.
La solution proposée ci-dessus est bonne sauf que DoModal en VC++ ne prend pas de paramètres. Il faut ajouter le pointeur de ta structure à ta boite de dialogue.
solidsnake88
Messages postés27Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention13 novembre 2006 25 oct. 2006 à 11:10
Et juste un tout petit petit bemol. Quand louis14 tu dis que je dois rajouter le pointeur de ta structure a la boite de dialogue... Concretement ca veux dire quoi? C'est peut etre tres simple mais je ne veux pas passer a cote de quelque chose de clean en faisant ma grosse merde qui fait la meme chose.
Merci a vous deux.
Vous n’avez pas trouvé la réponse que vous recherchez ?
solidsnake88
Messages postés27Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention13 novembre 2006 25 oct. 2006 à 11:12
Pour moi ma grosse merde c'etait que dans ma boite de dialogue j'avais une veraible menbre de type structure et je la recuperais par un des getters. C'est de la merde ou ca va?