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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ON_MESSAGE(WM_CLOSE, OnClose)
ceci ne fonctionne pas.

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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
m_myDlgBar.IsWindowVisible
, il m'indique correctement si la boîte est visible ou non.
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 un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
m_myDlgBar.ShowWindow(1)
Ceci 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.

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 avance beaucoup de votre

Alice