Sdílet prostřednictvím


Text stavového řádku podokno aktualizace

Tento článek popisuje, jak změnit text, který se zobrazí v podokně panelu Stav MFC.Stavový řádek – okno objekt třídy CStatusBar – obsahuje několik "podoken." Každé podokno je obdélníkové oblasti stavového řádku, můžete zobrazit informace.Například mnoho aplikací zobrazuje stav CAPS LOCK, NUM LOCK a dalších klíčů v podoknech vpravo.Aplikace také často zobrazit informativní text v levém podokně (podokně 0), nazývaný "podokně zpráv." Například výchozí MFC stavového řádku používá v podokně zpráv zobrazí řetězec, vysvětlující aktuálně vybrané položky nebo na panelu nástrojů tlačítko.Obrázek v Stavových zobrazí stavový řádek aplikace vytvořené pomocí Průvodce aplikace MFC.

Ve výchozím nastavení neumožňuje MFC CStatusBar podokně při vytváření panelu.Panel aktivovat, musíte použít ON_UPDATE_COMMAND_UI makro pro každé podokno stav řádku a aktualizovat podoken.Protože podoken odeslat WM_COMMAND zprávy (nejsou jako tlačítka na panelu nástrojů), musíte zadat kód ručně.

Předpokládejme například, že má jedno podokno ID_INDICATOR_PAGE jako identifikátor příkazu a který obsahuje číslo aktuální stránky v dokumentu.Následující postup popisuje, jak vytvořit nové podokno ve stavovém řádku.

Vytvoření nové podokno

  1. Definovat ID v podokně příkaz.

    Na zobrazení nabídky, klepněte na tlačítko Zobrazení zdrojů.Zdroj projektu a klepněte na tlačítko Prostředku symboly.V dialogovém okně symboly zdrojů klepněte na tlačítko New.Zadejte název příkazu ID: například ID_INDICATOR_PAGE.Zadejte hodnotu ID nebo přijmout hodnoty navrhované v dialogovém okně symboly prostředku.Například pro ID_INDICATOR_PAGE, přijmout výchozí hodnotu.Zavřete dialogové okno zdroj symboly.

  2. Definujte výchozí řetězec, který chcete zobrazit v podokně.

    Otevřít zobrazení zdrojů, poklepejte na Tabulky řetězců v okně, které jsou uvedeny typy prostředků pro aplikaci.S Tabulky řetězců zvolte Otevřít editor Nový řetězec z Vložit nabídce.V okně Vlastnosti řetězce vyberte ID příkazu v podokně (například ID_INDICATOR_PAGE) a zadejte výchozí hodnotu řetězce, jako například "Stránka".Zavřete editor řetězce.(Nutné výchozí řetězec, aby nedošlo k chybě kompilátoru.)

  3. Přidat do podokna ukazatelů pole.

    V souboru MAINFRM.CPP, vyhledejte ukazatelů pole.Toto pole obsahuje ID příkazu pro všechny ukazatele na stavovém řádku, v pořadí zleva doprava.V odpovídajícím bodě v poli zadejte ID příkazu v podokně, jak je znázorněno zde pro ID_INDICATOR_PAGE:

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

Doporučený způsob zobrazení textu v podokně je volání SetText členské funkce třídy CCmdUI v funkci aktualizace obslužnou rutinu pro podokno.Chcete-li například nastavit proměnná typu integer m_nPage číslo aktuální stránky a použití, který obsahuje SetText nastavit na řetězec verze tohoto čísla v podokně textu.

[!POZNÁMKA]

SetText přístup je doporučeno.Je možné provést tento úkol na poněkud nižší úrovni voláním CStatusBar členské funkce SetPaneText.I tak je třeba obslužnou rutinu aktualizace.Bez těchto obsluhu podokna MFC automaticky zakáže v podokně mazání jeho obsahu.

Následující postup ukazuje, jak používat funkci zpracování aktualizaci zobrazení textu v podokně.

Aby podokně zobrazení textu

  1. Přidáte příkaz update ovladač pro příkaz.

    Ruční přidání prototypu pro obsluhu, jak je znázorněno zde pro ID_INDICATOR_PAGE (v MAINFRM.H):

    afx_msg void OnUpdatePage(CCmdUI *pCmdUI);
    
  2. V odpovídajícím.CPP soubor, jak je zde uvedeno pro přidání definice popisovač ID_INDICATOR_PAGE (v MAINFRM.CPP):

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

    Poslední tři řádky této rutiny jsou kód, který zobrazí text.

  3. V mapě odpovídající zprávy přidat ON_UPDATE_COMMAND_UI makro, jak je znázorněno zde pro ID_INDICATOR_PAGE (v MAINFRM.CPP):

    ON_UPDATE_COMMAND_UI(ID_INDICATOR_PAGE, &CMainFrame::OnUpdatePage)
    

Po definování hodnoty m_nPage členské proměnné (třídy CMainFrame), tento postup způsobuje číslo stránky se zobrazí v podokně během nečinnosti zpracování stejným způsobem, že aktualizuje aplikace dalších ukazatelů.Pokud m_nPage změny, změny zobrazení během nečinnosti další smyčky.

a9ys3wsb.collapse_all(cs-cz,VS.110).gifCo chcete vědět více?

Viz také

Referenční dokumentace

Třída CStatusBar

Koncepty

Provádění stavového řádku v MFC