Toutoun13
Messages postés65Date d'inscriptionmardi 13 juillet 2004StatutMembreDernière intervention26 mars 2007
-
10 nov. 2005 à 10:01
Toutoun13
Messages postés65Date d'inscriptionmardi 13 juillet 2004StatutMembreDernière intervention26 mars 2007
-
10 nov. 2005 à 11:54
Bonjour,
J'ai crée dans mon appli une 2eme toolbar (pour le format du texte). Comme dans une appli normale, si je double clique sur la toolbar elle se detache de la zone reservée pour les toolbar, je peux alors la deplacer et la fermer. Si je la ferme, je n'arrive plus à l'afficher de nouveau.
Rq. J'ai ajouter dans le menu "affichage" un item "FormatBar" qui affiche ou pas la toolbar ("m_wndFormatBar.ShowWindow(SW_SHOW)" ou "m_wndFormatBar.ShowWindow(SW_HIDE)"). Ce mecanisme fonctionne tant que je n'ai pas fermé la toolbar.
Je cherche donc un moyen pour faire apparaitre de nouveau cette toolbar apres sa fermeture.
Merci d'avance.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 10 nov. 2005 à 10:57
Sans doute que fermer ne fait pas que cacher la toolbar mais la détruit aussi (tu peux le vérifier avec IsWindow(m_wndFormatBar.m_hWnd)
Dans ce cas, tu devra recréer la fenêtre
L'autre solution (mieux) c'est d'intercepter le WM_CLOSE ou WM_DESTROY et de faire un ShowWindow(SW_HIDE), comme ca la fenêtre n'est pas détruite
Toutoun13
Messages postés65Date d'inscriptionmardi 13 juillet 2004StatutMembreDernière intervention26 mars 2007 10 nov. 2005 à 11:03
Lorsque je ferme la toolbar elle n'est pas detruite, quand je tente de faire apparaitre ma toolbar, je rentre dans la fonction suivante et tout les tests passent.
void CMainFrame::DisplayFormatBar()
{
if ((m_wndFormatBar.GetSafeHwnd() != NULL))
{
if (!m_wndFormatBar.IsWindowVisible())
m_wndFormatBar.ShowWindow(SW_SHOWNORMAL);
}
}
Toutoun13
Messages postés65Date d'inscriptionmardi 13 juillet 2004StatutMembreDernière intervention26 mars 2007 10 nov. 2005 à 11:15
J'ai essayé, mais j'ai pas reussi. J'ai un peu de mal avec les arguments, surtout le 1er (const CWnd* pWndInsertAfter). Du coup mon 2eme soucis c'est que j' n'arrive pas à intercepter l'evenement lorsque je ferme la toolbar.
Vous n’avez pas trouvé la réponse que vous recherchez ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 10 nov. 2005 à 11:21
Je crois que le sous-classement n'est pas vigueur en MFC... Si je me souviens bien, tu crois créer une sous-classe de CToolBar, après tu dois savoir comment faire
Toutoun13
Messages postés65Date d'inscriptionmardi 13 juillet 2004StatutMembreDernière intervention26 mars 2007 10 nov. 2005 à 11:54
Le code suivant resoud le problème. Reste juste à replacer er redimensionner la toolbar.
if(m_wndToolBar.m_hWnd != NULL)
{
if(m_wndToolBar.LoadToolBar(IDR_TOOLBAR_ID))
{
DockControlBar(&m_wndToolBar);
m_wndToolBar.ShowWindow(SW_SHOW);
}
}