Aktualizace textu na panelu stavového řádku
Tento článek vysvětluje, jak změnit text, který se zobrazí v podokně panelu Stav knihovny MFC.Stavový řádek – okno objekt třídy CStatusBar -obsahuje několik "příčky". Každé podokno je obdélníkové oblasti stavového řádku, který slouží k zobrazení informací.Například mnoho aplikací zobrazuje stav CAPS LOCK, NUM LOCK a dalších klíčů v podokně vpravo.Aplikace také často zobrazovat informativní text v levém podokně (podokně 0), nazývaný "podokně zpráv." Na stavovém řádku výchozí knihovny MFC používá v podokně zpráv zobrazí řetězec, který aktuálně vybrané položky nebo na panelu nástrojů tlačítko s vysvětlením.Obrázek v Stavové řádky se zobrazí stavový řádek aplikace vytvořené v Průvodci aplikací knihovny MFC.
Standardně není povolena MFC CStatusBar podokně při vytváření panelu.Aktivujte panel, je třeba použít ON_UPDATE_COMMAND_UI makro pro každou část na stav pruhu a aktualizovat podokna.Protože příčky Neodesílat WM_COMMAND zprávy (nejsou jako tlačítka na panelu nástrojů), musíte kód zadat ručně.
Předpokládejme například, že má jedno podokno ID_INDICATOR_PAGE jako jeho 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.
Chcete-li nové podokno
ID příkazu v podokně definovat
Na zobrazení nabídky, klepněte na tlačítko Zobrazení zdrojů.Zdroj projektu klepněte pravým tlačítkem myši a klepněte na tlačítko Resource symboly.V dialogovém okně Resource symboly klepněte na tlačítko New.Zadejte název příkazu ID: například ID_INDICATOR_PAGE.Zadat hodnotu pro ID nebo přijmout hodnotu navrhl dialogovém okně Resource symboly.Například pro ID_INDICATOR_PAGE, přijměte výchozí hodnotu.Zavřete dialogové okno Resource symboly.
Definujte výchozí řetězec pro zobrazení v podokně.
Zobrazení zdrojů otevřít, poklepejte na Tabulky řetězců v okně jsou uvedeny typy prostředků aplikace.S Tabulky řetězců zvolte Otevřít editor Nový řetězec z Vložit nabídky.V okně Vlastnosti řetězec vyberte ID příkazu v podokně (například ID_INDICATOR_PAGE) a zadejte výchozí hodnotu řetězce, například "Stránka".Zavřete editor řetězců. (Potřebujete výchozí řetězec, aby nedošlo k chybě kompilátoru.)
Přidání panelu indikátory pole.
V souboru MAINFRM.CPP, vyhledejte značky pole.Toto pole obsahuje ID příkazu pro všechny indikátory stavového řádku v pořadí zleva doprava.V odpovídajícím bodě v poli zadat ID příkazu do podokna, 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 rutině funkci aktualizace podokna.Například můžete chtít nastavit celočíselnou proměnnou m_nPage číslo aktuální stránky a použití, který obsahuje SetText nastavení v podokně textu řetězec verze tohoto čísla.
[!POZNÁMKA]
SetText přístupu 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žné rutiny pro aktualizaci.Bez těchto obslužnou rutinu pro podokno knihovny MFC automaticky zakáže v podokně vymazání jejího obsahu.
Následující postup ukazuje, jak použít funkci aktualizace obslužné rutiny pro zobrazení textu v podokně.
Chcete-li podokno zobrazení textu
Přidejte obslužnou rutinu update příkaz k příkazu.
Ručně přidejte prototyp pro obslužné rutiny, jak je zde uvedeno pro ID_INDICATOR_PAGE (v MAINFRM.H):
afx_msg void OnUpdatePage(CCmdUI *pCmdUI);
V odpovídajícím.CPP soubor, přidejte definice pro obslužné rutiny, jak je znázorněno zde pro 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ódu, který zobrazuje text.
V mapě odpovídající zprávy přidejte 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)
Jakmile definujete hodnoty m_nPage členské proměnné (třídy CMainFrame), tento postup způsobí, že číslo stránky se zobrazí v podokně při nečinnosti zpracování stejným způsobem, že aktualizace aplikace dalších ukazatelů.Pokud m_nPage změny, změny zobrazení během další nečinnou smyčku.