Bonjour,
Toujours et encore dans la jungle des CDialogBars ...
J'ai une application MDi avec une boîte de dialogue flottante.
Cette boîte peut être fermée grâce à son icône dans sa barre de tâche.
Je cherche le moyen de faire disparaitre cette boîte sans passer par clic sur icône ainsi que le moyen de faire réapparaitre cette dernière.
Pour la faire disparaitre :
J'ai essayé de faire appel au message WM_CLOSE en le déplaçant dans le Message Map comme le WM_INITDIALOG afin de pouvoir réellement l'atteindre (voir FAQ)ceci ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ON_MESSAGE(WM_CLOSE, OnClose)
Quand on clic sur l'icône de fermeture de la boîte, je ne passe pas par cette fonction :![]()
Du coup je me demande si cette boîte est vraiment détruite !
Ou alors elle peut être cachée.
Pour cela je fait un test de visibilité sur la boîte en question :, il m'indique correctement si la boîte est visible ou non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part m_myDlgBar.IsWindowVisible
Vous pourrez me dire que cette fonction répondra aussi non si la boîte est détruite.... si une solution existe pour tester son existence je suis preneuse.
Pour la faire réapparaitre :
Au début je pensais qu'elle était détruite et qu'il fallait qu'elle soit recréée. Là, il me sort violemment du programme car il semblerait qu'elle existe déjà (d'où mon problème d'accès mémoire)
Aussi j'ai essayé de cacher la boîte en lui faisant unCeci permet de cacher tous les composants de la boîte sans la cacher elle même. Je me retrouve visuellement avec une boîte vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part m_myDlgBar.ShowWindow(1)![]()
D'où ma question : mais qu'elle est cette astuce pour femer/cacher une telle boîte (un peu comme une toolBar ou une statusBar quand on fait dans le menu View d'une application) ?
Si vous aviez une p'tite idée pour me sortir de ma détresse ....
par avancebeaucoup de votre
![]()
Alice
Partager