Aggiornare il testo di un riquadro della barra di stato

Questo articolo illustra come modificare il testo visualizzato in un riquadro della barra di stato MFC.Una barra di stato a un oggetto finestra di classe CStatusBar e due controlli “riquadri.„ Ciascun riquadro è un'area rettangolare della barra di stato che è possibile utilizzare per visualizzare le informazioni.Ad esempio, molte applicazioni visualizzare lo stato del tasto BLOC MAIUSC, BLOC NUM e altri tipi più riquadri a destra.Le applicazioni inoltre viene spesso visualizzato il testo informativo nel riquadro a sinistra nel 0), talvolta denominato “il riquadro del messaggio„. Ad esempio, la barra di stato di impostazione predefinita MFC utilizza il riquadro dei messaggi per visualizzare una stringa che espande la voce di menu o del pulsante della barra degli strumenti attualmente selezionata.La figura in barre di stato visualizzata una barra di stato da un'applicazione MFC Procedura guidata-creata applicazione.

Per impostazione predefinita, MFC non consente un riquadro di CStatusBar quando si crea il riquadro.Per attivare un riquadro, è necessario utilizzare la macro di ON_UPDATE_COMMAND_UI per ciascun riquadro nella barra di stato e aggiornare i riquadri.Poiché i riquadri non riceve i messaggi di WM_COMMAND (non sono simili ai pulsanti della barra degli strumenti, è necessario immettere manualmente il codice.

Ad esempio, si supponga che un riquadro di ID_INDICATOR_PAGE come unico identificatore di comando e che contiene il numero di pagina corrente in un documento.La procedura riportata di seguito viene illustrato come creare un nuovo riquadro nella barra di stato.

Per fare un nuovo riquadro

  1. Definire l'id del riquadro

    Scegliere dal menu di Visualizza , fare clic su Visualizzazione risorse.Fare clic con il pulsante destro del mouse sulla risorsa di progetto e scegliere Resource Symbols.Nella finestra di dialogo simboli delle risorse, fare clic su New.Digitare un nome di ID di comando: ad esempio, ID_INDICATOR_PAGE.Specificare un valore per ID, o accettare il valore finale dalla finestra di dialogo simboli risorsa.Ad esempio, per ID_INDICATOR_PAGE, accettare il valore predefinito.Chiudere la finestra di dialogo simboli risorsa.

  2. Definire una stringa predefinita per visualizzare il riquadro.

    Con la Visualizzazione risorse aperta, fare doppio clic su Tabella delle stringhe nella finestra tale tipi di risorsa degli elenchi per l'applicazione.Con l'editor di Tabella delle stringhe aperto, scegliere New String dal menu di Inserisci .Nella finestra delle proprietà stringa, selezionare l'ID di comando del riquadro, ad esempio ID_INDICATOR_PAGE) e digitare un valore stringa predefinito, ad esempio “pagina„.Chiudere l'editor stringhe.(È necessaria una stringa predefinita di evitare un errore del compilatore.)

  3. Aggiungere il riquadro alla matrice di indicators .

    Nei file MAINFRM.CPP, individuare la matrice di indicators .ID di comando degli elenchi di questa matrice per gli indicatori della barra di stato, in ordine da sinistra a destra.Nel punto appropriato nella matrice, fornire l'ID di comando del riquadro, come illustrato di seguito per ID_INDICATOR_PAGE:

    static UINT indicators[] =
    {
       ID_SEPARATOR,           // status line indicator
       ID_INDICATOR_CAPS,
       ID_INDICATOR_NUM,
       ID_INDICATOR_SCRL,
       ID_INDICATOR_PAGE,
    };
    

La modalità consigliata per visualizzare il testo in un riquadro consiste nel chiamare la funzione membro di SetText di classe CCmdUI in una funzione del gestore aggiornamento per il riquadro.Ad esempio, è possibile impostare una variabile Integer m_nPage contenente il numero di pagina corrente e l'utilizzo SetText impostare il testo del riquadro a una versione della stringa di tale numero.

[!NOTA]

L'approccio di SetText è consigliato.È possibile eseguire questa attività leggermente a un livello più basso chiamando la funzione membro SetPaneTextdi CStatusBar .Tuttavia, poiché inoltre necessario disporre di un gestore aggiornamento.Senza tale gestore per il riquadro, MFC automaticamente disabilita il riquadro, deselezionando il contenuto.

Nella procedura riportata di seguito viene illustrato come utilizzare una funzione del gestore aggiornamento per visualizzare testo in un riquadro.

Per rendere una visualizzazione del riquadro al testo a

  1. Aggiungere un gestore dell'aggiornamento di comando per il comando.

    Aggiungere manualmente un prototipo per il gestore, come illustrato di seguito per ID_INDICATOR_PAGE (in MAINFRM.H):

    afx_msg void OnUpdatePage(CCmdUI *pCmdUI);
    
  2. Nel file con estensione .CPP, aggiungere la definizione del gestore, come illustrato di seguito per ID_INDICATOR_PAGE (in MAINFRM.CPP):

    void CMainFrame::OnUpdatePage(CCmdUI *pCmdUI)
    {
        pCmdUI->Enable(); 
        CString strPage;
        strPage.Format(_T("Page %d"), m_nPage); 
        pCmdUI->SetText(strPage); 
    }
    

    Le ultime tre righe di questo gestore nel codice che visualizza il testo.

  3. Nella mappa messaggi appropriato, aggiungere la macro di ON_UPDATE_COMMAND_UI , come illustrato di seguito per ID_INDICATOR_PAGE (in MAINFRM.CPP):

    ON_UPDATE_COMMAND_UI(ID_INDICATOR_PAGE, &CMainFrame::OnUpdatePage)
    

Una volta definite il valore delle variabili membro di m_nPage (classe CMainFrame), cause di questa tecnica il numero di pagina da visualizzare nel riquadro durante l'elaborazione inattiva allo stesso modo che l'applicazione abbia aggiornato altri indicatori.Se modifiche di m_nPage , le modifiche della visualizzazione durante il ciclo inattivo seguente.

a9ys3wsb.collapse_all(it-it,VS.110).gifScegliere l'argomento su cui visualizzare maggiori informazioni

Vedere anche

Riferimenti

Classe CStatusBar

Concetti

Implementazione della barra di stato in MFC