IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

acceder au control d'affichage de la barre d'�tat


Sujet :

MFC

  1. #1
    Membre confirm�
    Femme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 36
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par d�faut acceder au control d'affichage de la barre d'�tat
    bonjour,

    dans la barre d'�tat de mon projet, j'ai un menu "affichage" et une option "barre d'�tat".. si cette ligne est d�coch�e, la barre d'�tat doit s'enl�ver.. le probl�me est que l�, c'est pas seulement ma barre d'�tait mais aussi toutes mes vues qui disparaissent (j'en ai 3 s�par� par des splitters)... c'est comme si la fenetre ne se redessinait pas.. parce que si je change la taille de ma fen�tre, les vues r�apparaissent(elles ont, elles, une m�thode "onSize")...
    Comment je peux faire pour que les vues ne disparaissent pas?

  2. #2
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Sans voir ton code je te dirai de faire un Invalidate() sur ce qui disparait pour forcer le redessinement , mais ce n'est pas forc�ment la meilleure solution surtout en terme de performances.

  3. #3
    Membre confirm�
    Femme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 36
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par d�faut
    Citation Envoy� par TheGzD Voir le message
    Sans voir ton code je te dirai de faire un Invalidate() sur ce qui disparait pour forcer le redessinement , mais ce n'est pas forc�ment la meilleure solution surtout en terme de performances.
    je comprend pas ou je dois mettre le Invalidate()...

    et je ne peux pas vous montrer mon code parce que.. je sais pas vraiment quoi montrer... le menu que j'ai �nonc� est g�n�r� automatiquement lorsque je cr�e mon projet.. du coup.. je sais vraiment pas quoi vous montrer..

    J'ai voulu ajouter un evenement quand on appui sur la commande du menu.. mais apparement elle passe pas dans la m�thode (je l'ai essay�e en d�bogage et quand j'appui sur "barre d'�tat" ca rentre pas la methode ON_COMMAND ... donc je sais pas du tout quel bout de code donner.. ni quel indice je peux vous passer pour qui vous puissiez m'aider

  4. #4
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    je comprend pas ou je dois mettre le Invalidate()...
    apr�s avoir fait ton truc qui les efface, non ?

  5. #5
    Membre confirm�
    Femme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 36
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par d�faut
    Citation Envoy� par TheGzD Voir le message
    apr�s avoir fait ton truc qui les efface, non ?
    justement.. je ne sais pas ou ce trouve le truc qui les efface

  6. #6
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    dans la barre d'�tat de mon projet, j'ai un menu "affichage" et une option "barre d'�tat".. si cette ligne est d�coch�e, la barre d'�tat doit s'enl�ver
    la barre d'�tat disparait par magie ?

  7. #7
    Membre confirm�
    Femme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 36
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par d�faut
    Citation Envoy� par TheGzD Voir le message
    la barre d'�tat disparait par magie ?
    et bah je me pose la question ...
    non elle disparait pas par magie bien sur, mais c'est pas moi qui ais cr�� le menu avec "affichage" -> "barre d'�tat".... ca a �t� g�n�r� lors de la cr�ation du projet en + du petit bouton "?" et du "Fichier"->"Quitter"... et l'action d'enlever la barre d'�tat non plus c'est pas moi qui l'ai r�aliser.. et j'arrive pas � trouver o� c'est g�r� exactement.. ...

  8. #8
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    c'est pas moi qui ais cr�� le menu avec "affichage" -> "barre d'�tat".... ca a �t� g�n�r� lors de la cr�ation du projet
    ok alors cherche quel message est g�n�r� par cette option, �a devrait t'aider � comprendre mieux ce qui se passe et ainsi � surcharger la bonne m�thode de ta dialog

  9. #9
    Membre confirm�
    Femme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 36
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par d�faut
    Citation Envoy� par TheGzD Voir le message
    ok alors cherche quel message est g�n�r� par cette option, �a devrait t'aider � comprendre mieux ce qui se passe et ainsi � surcharger la bonne m�thode de ta dialog
    justement j'essaie mais je n'arrive pas � retrouver quoique ce soit...
    je pensais que peut etre quelqu'un saurai o� ca se trouvait...

  10. #10
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Dans "Resource VIew" tu n'aurais pas le fameux menu par hasard ? si oui tu doit pouvoir avoir l'ID de l'option du menu. Avec cet ID tu dois pouvoir dans la classe de ta fen�tre principale rajouter la gestion de message suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ON_COMMAND(LA_FAMEUSE_ID, &CMaFenetrePrincipaleDlg::Lamethodequifaitréapparaitrelesvues)
    apr�s jte promets pas que cette m�thode se lance bien apr�s la disparition et pas avant ... � tester.

    Courage

  11. #11
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    la commande de menu de la barre d'�tat qui fait disparaitre la vue , je n'ai jamais vu �a.
    Et je ne vois par quel biais tu es arriv� � cette situation.
    Une copie �cran avant /apr�s permettrait peut �tre d'y voir plus clair.

    La commande peut �tre intercept�e comme tous les items de menu par un message command_ui
    comme dans ce post de la faq:
    http://cpp.developpez.com/faq/vc/?pa...tusBarShowHide
    mais �a ne r�pond pas au probl�me de la vue qui disparait.
    Avec si peut d'�l�ments je ne pense pas que l'on puisse r�pondre .

  12. #12
    Membre confirm�
    Femme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 36
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par d�faut
    Citation Envoy� par farscape Voir le message
    salut,
    la commande de menu de la barre d'�tat qui fait disparaitre la vue , je n'ai jamais vu �a.
    Et je ne vois par quel biais tu es arriv� � cette situation.
    et bien je ne sais pas non plus

    Citation Envoy� par farscape Voir le message
    La commande peut �tre intercept�e comme tous les items de menu par un message command_ui
    oui, normalement.. j'ai suis all�e sur le menu au niveau de "barre d'�tat" j'ai fais ajout� un gestionnaire d'�v�nement, ON_COMMAND.." je pensais comme je n'arrivais pas � retrouver ou se faisait le traitement, bah je peux toujours essayer de redessiner la vue une fois la barre d'�tat effac�.. mais tout ce que j'essayais.. donc je faisais par ex pour toutes mes vues:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void CArchGeodeApp::OnViewStatusBar()
    {
     
    CMainFrame* pFrame = static_cast<CMainFrame*>(AfxGetMainWnd());
     ((CArchGeodeView*)(pFrame->m_wndSplitter.GetPane(0,0)))->GetWindowRect(rectAGV);
    iWidth=rectAGV.right;
     iHeight=rectAGV.bottom;
     ((CArchGeodeView*)(pFrame->m_wndSplitter.GetPane(0,0)))->OnSize(SIZE_RESTORED,iWidth,iHeight);
     
    ...
    }
    ou

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void CArchGeodeApp::OnViewStatusBar()
    {
     
    CMainFrame* pFrame = static_cast<CMainFrame*>(AfxGetMainWnd());
    pFrame->SetWindowPos(NULL,0,0,rRect.Width(),rRect.Height(),SWP_NOMOVE|SWP_NOZORDER);
    ((CArchGeodeView*)(pFrame->m_wndSplitter.GetPane(0,0)))->SetWindowPos(NULL,0,0,(rRect.Width()*0,6),rRect.Height(),SWP_NOMOVE|SWP_NOZORDER);
     
    ...
    }
    bon.. j'essayais parce que j'avoue que je suis pas vraiment sur de ce que ca pouvais faire.. mais au final �a changeait rien.. j'ai essay� de faire appara�tre un messageBox.. rien du tout.. et quand je suis pass�e en d�bogage j'ai vu que l'appli n'entrait pas dans ma m�thode :'( .. �a m'avait d�j� fait �a une fois parce que j'avais mis deux ON_COMMAND pour un m�me ID dans deux classe diff�rentes et du coup �a marchait plus.. donc je suppose qu'il en existe d�j� un autre quelque part mais j'arrive pas � le trouver..

    et pour pr�cision..quand je redimensionne ma fen�tre mes vues r�aparaisse (parce que j'ai des OnSize).. et du coup.. si, sans barre d'�tat on voit mes vues, lorsque je remets la barre d'�tat mes vues disparaissent aussi

    j'envoie deux imprim ecran. un avec barre d'�tat et un sans
    Images attach�es Images attach�es   

  13. #13
    Membre confirm�
    Femme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 36
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par d�faut
    Citation Envoy� par TheGzD Voir le message
    Dans "Resource VIew" tu n'aurais pas le fameux menu par hasard ? si oui tu doit pouvoir avoir l'ID de l'option du menu. Avec cet ID tu dois pouvoir dans la classe de ta fen�tre principale rajouter la gestion de message suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ON_COMMAND(LA_FAMEUSE_ID, &CMaFenetrePrincipaleDlg::Lamethodequifaitréapparaitrelesvues)
    apr�s jte promets pas que cette m�thode se lance bien apr�s la disparition et pas avant ... � tester.

    Courage
    oui, je suis all�e chercher l'ID, je l'ai trouv�, j'ai fais une recherche ca m'a retrouv�e l'ID dans une liste de commandes:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CList<UINT, UINT> lstBasicCommands;
     
    lstBasicCommands.AddTail(ID_APP_EXIT);
    ...
    lstBasicCommands.AddTail(ID_APP_ABOUT);
    lstBasicCommands.AddTail(ID_VIEW_STATUS_BAR); // c'est cet ID
    lstBasicCommands.AddTail(ID_VIEW_TOOLBAR);
    ...
     
    CMFCToolBar::SetBasicCommands(lstBasicCommands);
    sauf que �a m'a envoy� nul part ailleurs.. en continuant � chercher j'ai du arriv�e � un moment dans une classe "afxtoolbarcustomizedialog.h" j'arrive plus � retrouver comment j'y �tais arriv�e je suis d�sol�e.. mais il y avait nul part l'ID que je cherchais et je me suis compl�tement perdu dans toutes ces classes

  14. #14
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    il serait pas mal de voir la portion de code qui initialise la barre d'�tat, et celle qui met en place le splitter.

  15. #15
    Membre confirm�
    Femme Profil pro
    D�veloppeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 36
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par d�faut
    Citation Envoy� par farscape Voir le message
    il serait pas mal de voir la portion de code qui initialise la barre d'�tat, et celle qui met en place le splitter.
    onCreateClient de MainFrame. pour les splitters
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
    {
    	// TODO : ajoutez ici votre code spécialisé et/ou l'appel de la classe de base
    	//creation des 2 partie principales
    	if (!m_wndSplitter.CreateStatic(this, 1, 2))
    	{
    		TRACE0("Failed to CreateStaticSplitter\n");
    		return FALSE;
    	}
     
    	//division de la fenetre de droite en 2 sous-parties
    	if(!m_wndSplitter2.CreateStatic(&m_wndSplitter,2,1,WS_CHILD | WS_VISIBLE | WS_BORDER,  
    		m_wndSplitter.IdFromRowCol(0, 1)))
    	{
    		TRACE0("Failed to CreateStaticSplitter2\n");
    		return FALSE;
    	}
     
    	//vue de la partie principale de gauche
    	if (!m_wndSplitter.CreateView(0, 0,
    		RUNTIME_CLASS(CArchGeodeView), CSize(500, 0), pContext))
    	{
    		TRACE0("Failed to create first pane\n");
    		return FALSE;
    	}
     
    	//vue de la sous-partie du haut
    	if (!m_wndSplitter2.CreateView(0, 0,
    		RUNTIME_CLASS(CServerView), CSize(0, 500), pContext))
    	{
    		TRACE0("Failed to create first pane2\n");
    		return FALSE;
    	}
     
    	//vue de la sous-partie du bas
    	if(!m_wndSplitter2.CreateView(1,0,RUNTIME_CLASS(CDetailZipView),CSize(0,0),pContext))
    	{
    		TRACE0("Failed to create second pane2\n");
    		return FALSE;
     
    	}
    	return TRUE;
    }
    pour la barre d'�tat...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    //les indicators...
    static UINT indicators[] =
    {
     
    	ID_SEPARATOR, // indicateur de la ligne d'état
    	ID_STATUSBAR_PROGRESS,
    // 	ID_INDICATOR_CAPS,
    // 	ID_INDICATOR_NUM,
    // 	ID_INDICATOR_SCRL,
    };
     
     
     
    //dans le OnCreate
     
    m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));
     
    ...
     
    if (!m_wndStatusBar.Create(this) && !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)))
    	{
    		TRACE0("Impossible de créer la barre d'état\n");
    		return -1;      // échec de la création
    	}
    .. apr�s... je sais pas trop quoi ajouter... vous vouliez peut etre autre chose...

Discussions similaires

  1. Visual Studio 2008 - Affichage de la barre d'�tat
    Par edid dans le forum Visual Studio
    R�ponses: 6
    Dernier message: 17/11/2010, 17h10
  2. R�ponses: 5
    Dernier message: 24/05/2006, 13h34
  3. Affichage dans la barre d'�tat
    Par Prue dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 6
    Dernier message: 05/07/2005, 11h51
  4. Affichage d'un texte dans la barre d'�tat!
    Par chuart dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 7
    Dernier message: 12/04/2005, 12h47
  5. Pb d'affichage dans barre d'�tat
    Par linou dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 01/04/2005, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo