Udostępnij za pośrednictwem


Aktualizowanie tekstu w okienku Pasek stanu

W tym artykule wyjaśniono, jak zmienić tekst wyświetlany w okienku Pasek stanu MFC.Pasek stanu — obiekt window klasy CStatusBar — zawiera kilka "okienka." Każde okienko jest prostokątny obszar paska stanu, który służy do wyświetlania informacji.Na przykład wiele aplikacji wyświetlić stan CAPS LOCK, NUM LOCK i inne klucze w okienku po prawej stronie.Aplikacje często wyświetlane wartościowa tekstu w okienku po lewej (okienko 0), czasami nazywane "okienko wiadomości". Na przykład pasek stanu domyślnego MFC używa okienka komunikatu do wyświetlenia, ciąg wyjaśniający menu aktualnie zaznaczonego elementu lub przycisk paska narzędzi.Rysunek w Paski stanu pokazuje pasek stanu z aplikacji MFC utworzone przez Kreatora aplikacji.

Domyślnie, nie włącza się MFC CStatusBar okienka podczas tworzenia okienka.Aby uaktywnić okienko, należy użyć ON_UPDATE_COMMAND_UI makr dla każdego okienka na stan paska, a następnie zaktualizować okienka.Ponieważ nie wysyłaj okienka WM_COMMAND wiadomości (nie są takie jak przyciski paska narzędzi), należy ręcznie wpisać kod.

Załóżmy, że ma jednego okienka ID_INDICATOR_PAGE jako swój identyfikator polecenia i który zawiera bieżący numer strony w dokumencie.Poniższa procedura opisuje sposób tworzenia nowego okienka na pasku stanu.

Aby nowe okienko

  1. Definiowanie identyfikatora okienku polecenie.

    Na widoku menu, kliknij Widok zasobów.Kliknij prawym przyciskiem myszy zasób projektu, a następnie kliknij przycisk Zasobów symbole.W oknie dialogowym symbole zasobu kliknij New.Wpisz nazwę polecenia ID: na przykład, ID_INDICATOR_PAGE.Określ wartość dla Identyfikatora lub zaakceptuj wartość sugerowane przez okno dialogowe symbole zasobów.Na przykład dla ID_INDICATOR_PAGE, należy zaakceptować wartość domyślną.Zamknij okno dialogowe symbole zasobów.

  2. Zdefiniuj domyślny ciąg, aby wyświetlić w okienku.

    Otwórz widok zasobów, kliknij dwukrotnie Tabeli ciągów w oknie, które zawiera listę typów zasobów dla aplikacji.Z Tabeli ciągów wybierz polecenie Otwórz, edytor Nowy ciąg z wstawić menu.W oknie właściwości ciągów wybierz identyfikator polecenia tego okienka (na przykład ID_INDICATOR_PAGE) i wprowadź wartość domyślną ciąg, takie jak "Strony".Zamknij Edytor ciągu.(Musisz domyślny ciąg, aby uniknąć błędu kompilatora.)

  3. Dodaj do okienka wskaźniki tablicy.

    W pliku MAINFRM.CPP, zlokalizuj wskaźniki tablicy.Ta tablica zawiera listę identyfikatorów poleceń dla wszystkich wskaźników na pasku stanu, w kolejności od lewej do prawej.We właściwym momencie w tablicy, należy wprowadzić identyfikator polecenia tego okienka, jak pokazano tutaj, aby ID_INDICATOR_PAGE:

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

Zalecany sposób wyświetlania tekstu w okienku jest wywołanie SetText funkcji składowej klasy CCmdUI w funkcję obsługi aktualizacji dla okienka.Na przykład można zdefiniować zmienną integer m_nPage zawierający numer bieżącej strony i wykorzystania SetText ustawić okienka tekstu do tego numeru wersji ciąg.

[!UWAGA]

SetText podejście jest zalecane.Jest możliwe do wykonania tego zadania na nieco niższym poziomie, wywołując CStatusBar Członkowskich funkcji SetPaneText.Mimo to nadal konieczne programu obsługi aktualizacji.Bez takich obsługi dla okienka MFC automatycznie wyłącza okienko, wymazywanie jego zawartości.

Poniższa procedura pokazuje jak używać funkcji obsługi aktualizacji do wyświetlania tekstu w okienku.

Aby okienko, wyświetlanie tekstu

  1. Dodawanie obsługi aktualizacji polecenia dla polecenia.

    Ręcznie dodać prototyp obsługi, jak pokazano tutaj, aby ID_INDICATOR_PAGE (w MAINFRM.H):

    afx_msg void OnUpdatePage(CCmdUI *pCmdUI);
    
  2. W stosownych.CPP plików, Dodawanie definicji modułu obsługi, jak pokazano tutaj, aby ID_INDICATOR_PAGE (w MAINFRM.CPP):

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

    Ostatnich trzech wierszy tej obsługi jest kod, który wyświetla tekst.

  3. W mapie odpowiedni komunikat, należy dodać ON_UPDATE_COMMAND_UI makro, jak pokazano tutaj, aby ID_INDICATOR_PAGE (w MAINFRM.CPP):

    ON_UPDATE_COMMAND_UI(ID_INDICATOR_PAGE, &CMainFrame::OnUpdatePage)
    

Po zdefiniowaniu wartości m_nPage zmienną (klasy CMainFrame), technika ta powoduje, że numer strony są wyświetlane w okienku podczas bezczynności przetwarzania w taki sam sposób, że aplikacja aktualizuje inne wskaźniki.Jeśli m_nPage zmiany, zmiany wyświetlania podczas następnego pętlę bezczynności.

a9ys3wsb.collapse_all(pl-pl,VS.110).gifCo chcesz wiedzieć więcej?

Zobacz też

Informacje

Klasa CStatusBar

Koncepcje

Pasek stanu wykonania w MFC