Simuler appui sur X (croix en haut à droite) ET Question sur Dialog

mahojul Messages postés 27 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 6 mars 2009 - 23 févr. 2009 à 14:45
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011 - 24 févr. 2009 à 12:56
Bonjour,






Je développe en VC++ 6.0 sur un pc avec WinXP Pro SP3 et je suis un peu embêté ... (pour information, je suis à 100% débutant)






Question 1 :




Peut-on simuler le clic sur la croix en haut à droite d'un dialog sur un bouton ?




Actuellement, j'ai créer un Dialog qui contient 3 boutons.
Bouton 1 : Ouvre un autre dialog
Bouton 2 : Fait une mise à jour du Dialog
Bouton 3 : Non utilisé pour le moment)

Lorsque je clic sur le bouton 1, cela m'ouvre un second Dialog et sur ce Dialog, il y a 1 champ texte (label), 1 bouton (qui devrait fermer le dialog comme si on cliquer sur la petite croix en haut à droite du dialog) et 1 timer qui s'exécute dès l'ouverture d'un formulaire. Mon actuel soucis est le suivante :

1) Lorsque je clic sur la petite croix en haut à droite, le Dialog se ferme bien et je reviens sur mon premier Dialog
2) Lorsque je clic sur mon bouton, le Dialog se ferme et je reviens sur mon premier Dialog mais je ne peux plus rien faire, même pas fermer le Dialog 1. On dirait que tout se bloque.

Voici le code que j'ai mis sur le bouton pour fermer le dialog 2 :

void TTest::OnBtnStopTimer()
{
    DestroyWindow();
}




Voici ce qui se passe lorsque l'on passe dans "On Destroy()" :

void TTest::OnDestroy()
{
    CDialog::OnDestroy();
    TP_PM249_Close(m_iAxe + 1);
    KillTimer(1);
}




Lorsque je tente de débugger mon code pas à pas, lorsque je clic sur la croix en haut à droite de mon dialog 2 j'arrive bien dans la procédure
void TTest::OnDestroy() et lorsque je clic sur mon bouton, j'y arrive également mais après mon dialog 1 se bloque ... et je ne comprends pas pourquoi ... Si vous avez des idées, elles seront les bienvenues.








Question 2 :




Peut-on mettre un dialog (avec Timer) dans un dialog (comme par exemple on metterait un sous-formulaire dans un formulaire) . J'entends par la que, me trouvant sur un dialoque, je clic sur un bouton qui va faire apparaitre un seconde dialog dans la dialog 1. (Comme pour un formulaire possédant un sous-formulaire par exemple). 
?

3 réponses

ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
23 févr. 2009 à 15:03
Bonjour,

Reponse 1 :

void TTest::OnBtnStopTimer()
{    EndDialog(FALSE); // FALSE Annuler, TRUE OK
}

Reponse 1 :

Non, on ne peut pas mettre 1 Dialog dans un autre, il va falloir que tu trouves une autre solution. Peut, être cacher une partie de ton dialog et la faire apparaitre quand tu cliques sur un bouton.
0
mahojul Messages postés 27 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 6 mars 2009
23 févr. 2009 à 15:40
Mais c'est super ... ...

Pour la question N°1 c'est exactement cela que je cherchais à faire ...

Merci beaucoup beaucoup .... .... .... beaucoup ...

Concernant ma question N°2 ... je vais encore chercher un peu ... je laisse le sujet ouvert au cas où qqn aurait une idée ... ...

Merci mille fois de ton aide précieuse ... ... c'est super ... ...
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
24 févr. 2009 à 12:56
Pour la question 2, on peut inclure un dialog dans un autre (du moins en C et C++, alors pourquoi pas en .NET), soit sous la forme MDI, soit en créant la fenêtre de façon à ce qu'elle soit fille de la deuxième.
Désolé, je ne peux pas t'aider plus, je ne connais pas la syntaxe du .NET.

Cordialement, uaip.
0
Rejoignez-nous