salut a tous,
je voudrais juste savoir comment il faut faire pour afficher des informations dans la status bar.
merci
fr_ed_er_ic
Version imprimable
salut a tous,
je voudrais juste savoir comment il faut faire pour afficher des informations dans la status bar.
merci
fr_ed_er_ic
Je crois qu'il y a StatusPaneInfo ou SetStatusPaneInfo qui te permet de modifier ta barre d'état.
Sinon si tu veux ajouter une nouvelle zone (zone : comme pour MAJ NUM DEFIL), il faut que dans ta classe CMainFrame, à l'endroit où tu as INDICATOR[], tu rajoute des ID. Ces ID doivent correspondre à une ressource se trouvant dans la String Table. Ensuite la barre d'état affichera le texte qui se trouve dans la String Table.
Pour pouvoir modifier ce texte, il faut que tu rajoute un message
OnUpdateTonID(CmdUI* pCmdUI)
{
if(/*condition*/)
pCmdUI->SetText("Salut");
}
ok merci, mais je n'ai pas l'ID des indicator dans le class wisard
salut, tu peux regarder ce lien http://www.developpez.net/forums/vie...ght=status+bar
Voilà un exemple que j'ai utilisé permettant de rajouter la date et l'heure
Il faut tout d'abord créer une ressource pour chaque indicateur.
Ensuite, dans la string table, tu ajoute à chaque ID de tes indicateurs du texte (la longueur du texte te donnera la taille de la zione dans la barre d'état)
MainFrame.h -> rajouter les déclarations des messages
MainFrame.cppCode:
1
2
3
4
5 afx_msg void OnUpdateDate(CCmdUI *pCmdUI); afx_msg void OnUpdateHeure(CCmdUI *pCmdUI); afx_msg void OnTimer(UINT nIDEvent);//rajout d'un timer pour mettre à jour l'heure en continu
-> rajouter les messages dans BEGIN_MESSAGE_MAP
-> rajouter les indicateursCode:
1
2
3
4 ON_UPDATE_COMMAND_UI(ID_INDICATOR_DATE, CMainFrame::OnUpdateDate) ON_UPDATE_COMMAND_UI(ID_INDICATOR_HEURE, CMainFrame::OnUpdateHeure) ON_WM_TIMER()
-> Mettre à jour le texteCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 static UINT indicators[] = { ID_SEPARATOR, // indicateur de la ligne d'état // ID_INDICATOR_EXT, //Indicateurs habituels ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, // ID_INDICATOR_OVR, // ID_INDICATOR_REC, ID_INDICATOR_DATE, //Indicateur pour afficher la date ID_INDICATOR_HEURE, //Indicateur pour afficher l'heure };
-> il faut en plus lancer le timer avec SetTimer() pour mettre à jour l'affichage régulièrement.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 void CMainFrame::OnUpdateDate(CCmdUI *pCmdUI) { char buffer[9]; CString temp; pCmdUI->Enable(); //Autorise l'élément _strdate(buffer); temp.Format(" %.2s/%.2s/%.2s",&buffer[3],&buffer[0],&buffer[6]); //Récupère la date pCmdUI->SetText(temp); //Affiche la date } void CMainFrame::OnUpdateHeure(CCmdUI *pCmdUI) { char buffer[9]; CString temp; pCmdUI->Enable(); _strtime(buffer); temp.Format(" %.8s",buffer); //Formate un texte pour l'heure pCmdUI->SetText(temp); //Affiche l'heure }
merci pour l'exemple ca marche impecable
a+
fred