Sdílet prostřednictvím


CCmdUI – třída

Používá se pouze v rámci ON_UPDATE_COMMAND_UI obslužné rutiny v -odvozené CCmdTargettřídě.

Syntaxe

class CCmdUI

Členové

Veřejné metody

Jméno popis
CCmdUI::ContinueRouting Informuje mechanismus směrování příkazů, aby pokračoval ve směrování aktuální zprávy v řetězci obslužných rutin.
CCmdUI::Enable Povolí nebo zakáže položku uživatelského rozhraní pro tento příkaz.
CCmdUI::SetCheck Nastaví stav kontroly položky uživatelského rozhraní pro tento příkaz.
CCmdUI::SetRadio Podobně jako členová SetCheck funkce, ale pracuje s rádiovými skupinami.
CCmdUI::SetText Nastaví text položky uživatelského rozhraní pro tento příkaz.

Veřejné datové členy

Jméno popis
CCmdUI::m_nID ID objektu uživatelského rozhraní.
CCmdUI::m_nIndex Index objektu uživatelského rozhraní.
CCmdUI::m_pMenu Odkazuje na nabídku reprezentovanou objektem CCmdUI .
CCmdUI::m_pOther Odkazuje na objekt okna, který oznámení odeslal.
CCmdUI::m_pSubMenu Odkazuje na obsaženou dílčí nabídku reprezentovanou objektem CCmdUI .

Poznámky

CCmdUI nemá základní třídu.

Když uživatel vaší aplikace stáhne nabídku, musí každá položka nabídky vědět, jestli se má zobrazit jako povolená nebo zakázaná. Cíl příkazu nabídky poskytuje tyto informace implementací obslužné rutiny ON_UPDATE_COMMAND_UI. Pro každý z objektů uživatelského rozhraní příkazu ve vaší aplikaci použijte okno Průvodce třídou nebo Vlastnosti (v zobrazení třídy) k vytvoření položky mapy zpráv a prototypu funkce pro každou obslužnou rutinu.

Když je nabídka stažena, rozhraní vyhledá a volá každou obslužnou rutinu ON_UPDATE_COMMAND_UI, každá obslužná rutina volá CCmdUI členské funkce, jako EnableChecka a rozhraní pak odpovídajícím způsobem zobrazí každou položku nabídky.

Položku nabídky lze nahradit tlačítkem řídicího panelu nebo jiným objektem uživatelského rozhraní příkazu beze změny kódu v obslužné rutině ON_UPDATE_COMMAND_UI .

Následující tabulka shrnuje vliv CCmdUIčlenských funkcí na různé položky uživatelského rozhraní příkazů.

Položka uživatelského rozhraní Povolit SetCheck SetRadio Nastavit text
Položka nabídky Povolí nebo zakáže Kontroly nebo zrušení zaškrtnutí Kontroly pomocí tečky Nastaví text položky.
Tlačítko panelu nástrojů Povolí nebo zakáže Vybere, zruší výběr nebo nedeterminuje. Stejné jako SetCheck (Nepoužitelné)
Podokno stavového řádku Zviditelní nebo zviditelní text. Nastaví automaticky otevírané okno nebo normální ohraničení. Stejné jako SetCheck Nastaví text podokna.
Normální tlačítko v CDialogBar Povolí nebo zakáže Zaškrtnutí nebo zrušení zaškrtnutí políčka Stejné jako SetCheck Nastavení textu tlačítka
Normální ovládání v CDialogBar Povolí nebo zakáže (Nepoužitelné) (Nepoužitelné) Nastaví text okna.

Další informace o použití této třídy naleznete v tématu Jak aktualizovat objekty uživatelského rozhraní.

Hierarchie dědičnosti

CCmdUI

Požadavky

Hlavička: afxwin.h

CCmdUI::ContinueRouting

Voláním této členské funkce sdělíte mechanismu směrování příkazů, aby pokračoval ve směrování aktuální zprávy v řetězci obslužných rutin.

void ContinueRouting();

Poznámky

Jedná se o pokročilou členovou funkci, která by se měla použít ve spojení s obslužnou rutinou ON_COMMAND_EX, která vrací hodnotu FALSE. Další informace naleznete v technické poznámce 6.

CCmdUI::Enable

Voláním této členské funkce povolíte nebo zakážete položku uživatelského rozhraní pro tento příkaz.

virtual void Enable(BOOL bOn = TRUE);

Parametry

Bon
Pokud chcete položku povolit, nePRAVDA ji zakažte.

Příklad

ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, &CMyDoc::OnUpdateFileSave)

 

void CMyDoc::OnUpdateFileSave(CCmdUI *pCmdUI)
{
   // Enable the menu item if the file has been modified.
   pCmdUI->Enable(m_bModified);
}

CCmdUI::m_nID

ID položky nabídky, tlačítka panelu nástrojů nebo jiného objektu uživatelského rozhraní reprezentovaný objektem CCmdUI .

UINT m_nID;

CCmdUI::m_nIndex

Index položky nabídky, tlačítka panelu nástrojů nebo jiného objektu uživatelského rozhraní reprezentovaný objektem CCmdUI .

UINT m_nIndex;

CCmdUI::m_pMenu

Ukazatel (typuCMenu) na nabídku reprezentovanou objektem CCmdUI

CMenu* m_pMenu;

Poznámky

NULL, pokud položka není nabídka.

CCmdUI::m_pSubMenu

Ukazatel (typu CMenu ) na obsaženou dílčí nabídku reprezentovanou objektem CCmdUI .

CMenu* m_pSubMenu;

Poznámky

NULL, pokud položka není nabídka. Pokud je dílčí nabídka automaticky otevíraná, m_nID obsahuje ID první položky v místní nabídce. Další informace naleznete v technické poznámce 21.

CCmdUI::m_pOther

Ukazatel (typu CWnd) na objekt okna, například nástroj nebo stavový řádek, který oznámení odeslal.

CWnd* m_pOther;

Poznámky

NULL, pokud je položka nabídka nebo objekt, který není CWnd objekt.

CCmdUI::SetCheck

Voláním této členské funkce nastavíte položku uživatelského rozhraní pro tento příkaz na odpovídající stav kontroly.

virtual void SetCheck(int nCheck = 1);

Parametry

nCheck
Určuje stav kontroly, který se má nastavit. Pokud 0, zruší zaškrtnutí; pokud 1, kontroly; a pokud 2, nastaví neurčité.

Poznámky

Tato členová funkce funguje pro položky nabídky a tlačítka panelu nástrojů. Neurčitý stav se vztahuje pouze na tlačítka panelu nástrojů.

CCmdUI::SetRadio

Voláním této členské funkce nastavíte položku uživatelského rozhraní pro tento příkaz na odpovídající stav kontroly.

virtual void SetRadio(BOOL bOn = TRUE);

Parametry

Bon
TRUE pro povolení položky; jinak NEPRAVDA.

Poznámky

Tato členová funkce funguje podobně jako SetCheck, s tím rozdílem, že pracuje s položkami uživatelského rozhraní, které fungují jako součást skupiny rádia. Zrušení zaškrtnutí ostatních položek ve skupině není automatické, pokud samotné položky nezachovají chování skupiny.

CCmdUI::SetText

Voláním této členské funkce nastavíte text položky uživatelského rozhraní pro tento příkaz.

virtual void SetText(LPCTSTR lpszText);

Parametry

lpszText
Ukazatel na textový řetězec.

Příklad

void CMyRichEditView::OnUpdateLineNumber(CCmdUI *pCmdUI)
{
   int nLine = GetRichEditCtrl().LineFromChar(-1) + 1;

   CString string;
   string.Format(_T("Line %d"), nLine);
   pCmdUI->Enable(TRUE);
   pCmdUI->SetText(string);
}

Viz také

MFC – ukázka MDI
Graf hierarchie
CCmdTarget – třída