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 :

[MFC] probl�me status bar


Sujet :

MFC

  1. #1
    Membre confirm�
    Inscrit en
    Avril 2006
    Messages
    109
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par d�faut [MFC] probl�me status bar
    Bonjour,

    J'ai rajout� un indicateur de graphe ID_INDICATOR_GRA dans MainFrm.cpp

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    static UINT indicators[] =
    {
     ID_SEPARATOR,           // status line indicator
     ID_INDICATOR_GRA,
     ID_INDICATOR_CAPS,
     ID_INDICATOR_NUM,
     ID_INDICATOR_SCRL,
    };
    et j'ai rajout� le code suivant dans ma fonction OnDraw de ma View


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CString graphe;
     
    ...
     
    CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
    CStatusBar* pStatus = &pFrame->m_wndStatusBar;
    pStatus->SetPaneInfo(1,ID_INDICATOR_GRA,SBPS_NORMAL,150);
    pStatus->SetPaneText(1, graphe);
    Le paneau de largeur 150 s'affiche bien, mais par contre, le nom du graphe s'affiche pendant une seconde puis dispara�t. Pourquoi ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Par d�faut
    Je sais pas trop quel information tu veux mettre dans la variable CString graphe;
    Et a quel moment tu veux mettre a jour la bar de status ?

    Mais, par exemple, tu peuts surcharge l'evenement WM_TIMER ( On Timer(...) ) de ta view et mettre ton code dedans.
    Faire aussi un SetTimer dans la function OnCreate(..) de la View

    De cette facon, ton indicateur de la statusbar sera mise a jour regulierement

  3. #3
    Membre confirm�
    Inscrit en
    Avril 2006
    Messages
    109
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par d�faut
    Je veux mettre � jour la barre de status lorsque j'appelle la m�thode UpdateAllViews( NULL ); (qui permet de mettre � jour ma formview et ma view) et c'est pour cela que j'ai mis mon code dans la fonction OnDraw().

  4. #4
    Membre confirm�
    Inscrit en
    Avril 2006
    Messages
    109
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par d�faut
    C'est bon, j'ai r�solu moi-m�me mon probl�me alors je vous en fais profiter :
    pour pouvoir ajouter et modifier des champs dans la barre d'�tat, il faut bien respecter ces 3 �tapes :
    1) Ajouter un ID_INDICATOR_PERSO dans View-> resources symbols (en gardant de pr�f�rence la valeur attribu�e par d�faut � l'id)
    2) Ajouter dans String Table l'ID_INDICATOR_PERSO que l'on vient de cr�er (on va le chercher dans la liste)
    3) On rajoute la ligne ID_INDICATOR_PERSO
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    static UINT indicators[] =
    {
    ID_SEPARATOR, // status line indicator
      ID_INDICATOR_CAPS,
      ID_INDICATOR_NUM,
      ID_INDICATOR_SCRL,
      ID_INDICATOR_PERSO,
    };
    Apr�s, il suffit d'ins�rer le code suivant n'importe o�

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
     CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
     CStatusBar* pStatus = &pFrame->m_wndStatusBar;
     pStatus->SetPaneInfo(4,ID_INDICATOR_PERSO,SBPS_NORMAL,150);
     pStatus->SetPaneText(4, "mon texte");

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Par d�faut
    salut je sais que le topic date un peu mais je veux juste apporter une petite pr�cision par rapport au poste pr�c�dent, dans un mdi classique le code suivant
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
     CStatusBar* pStatus = &pFrame->m_wndStatusBar;
     pStatus->SetPaneInfo(4,ID_INDICATOR_PERSO,SBPS_NORMAL,150);
     pStatus->SetPaneText(4, "mon texte");
    ne marchera pas "n'importe o�" comme il est dit puisque l'attribut m_wndStatusBar est d�clar� en protected dans le MainFrame.h, j'ai donc contourn� cela en ajoutant une m�thode dans le MainFrame.h :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    void UpdateStatusBar (int nID, CString str) {m_wndStatusBar.SetPaneText(nID,str);}
    l'appel suivant peut alors �tre fait "n'importe o�" :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
    	pFrame->UpdateStatusBar(1,"ca marche!!");
    voila c'�tait juse une petite pr�cision pour aider les gens qui rencontreraient le m�me probl�me!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me avec le BACK de la status bar
    Par Mel_rose dans le forum SAP
    R�ponses: 3
    Dernier message: 23/09/2014, 10h38
  2. [MFC] Status bar
    Par fr_ed_er_ic dans le forum MFC
    R�ponses: 5
    Dernier message: 21/07/2004, 15h12
  3. [MFC] Probl�me pointeur sur une classe
    Par mick74 dans le forum MFC
    R�ponses: 7
    Dernier message: 14/04/2004, 14h17
  4. [MFC] Probl�me de pointeur !!
    Par acastor dans le forum MFC
    R�ponses: 7
    Dernier message: 19/03/2004, 15h50
  5. [MFC] probl�me d'�x�cution
    Par ben_iap dans le forum MFC
    R�ponses: 2
    Dernier message: 15/03/2004, 10h31

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