Sdílet prostřednictvím


CKeyboardManager – třída

Spravuje tabulky klávesových zkratek pro okno hlavního rámce a podřízená okna rámečku.

Syntaxe

class CKeyboardManager : public CObject

Členové

Veřejné konstruktory

Název Popis
CKeyboardManager::CKeyboardManager CKeyboardManager Vytvoří objekt.

Veřejné metody

Název Popis
CKeyboardManager::CleanUp Vymaže tabulky klávesových zkratek.
CKeyboardManager::FindDefaultAccelerator Načte výchozí klávesovou zkratku pro zadaný příkaz a okno.
CKeyboardManager::IsKeyHandled Určuje, zda je klíč zpracován tabulkou akcelerátorů.
CKeyboardManager::IsKeyPrintable Určuje, zda je znak tisknutelný.
CKeyboardManager::IsShowAllAccelerators Označuje, zda nabídky zobrazují všechny klávesové zkratky pro příkaz nebo pouze výchozí klávesovou zkratku.
CKeyboardManager::LoadState Načte tabulky klávesových zkratek z registru Systému Windows.
CKeyboardManager::ResetAll Znovu načte tabulky klávesových zkratek z prostředku aplikace.
CKeyboardManager::SaveState Uloží tabulky klávesových zkratek do registru Systému Windows.
CKeyboardManager::ShowAllAccelerators Určuje, jestli architektura zobrazí všechny klávesové zkratky pro všechny příkazy, nebo jednu klávesovou zkratku pro každý příkaz. Tato metoda nemá vliv na příkazy, které mají pouze jednu přidruženou klávesovou zkratku.
CKeyboardManager::TranslateCharToUpper Převede znak na jeho horní registr.
CKeyboardManager::UpdateAccelTable Aktualizuje tabulku klávesových zkratek novou tabulkou klávesových zkratek.

Poznámky

Členové této třídy umožňují ukládat a načítat tabulky klávesových zkratek do registru Systému Windows, pomocí šablony aktualizovat krátké tabulky klávesových zkratek a najít výchozí klávesovou zkratku pro příkaz v okně rámce. Kromě toho objekt umožňuje řídit, CKeyboardManager jak se uživatelům zobrazují klávesové zkratky.

Objekt byste neměli vytvářet CKeyboardManager ručně. Vytvoří se automaticky v rámci vaší aplikace. Během procesu inicializace aplikace byste však měli volat CWinAppEx::InitKeyboardManager . Pokud chcete získat ukazatel na správce klávesnice pro vaši aplikaci, zavolejte CWinAppEx::GetKeyboardManager.

Příklad

Následující příklad ukazuje, jak načíst ukazatel na CKeyboardManager objekt z CWinAppEx třídy a jak zobrazit všechny klávesové zkratky přidružené k příkazům nabídky. Tento fragment kódu je součástí ukázky vlastních stránek.

// The GetKeyboardManager method is inherited from the CWinAppEx class.
CKeyboardManager *cKeyboardManager = GetKeyboardManager();
cKeyboardManager->ShowAllAccelerators();

Hierarchie dědičnosti

Objekt CObject

CKeyboardManager

Požadavky

Hlavička: afxkeyboardmanager.h

CKeyboardManager::CKeyboardManager

CKeyboardManager Vytvoří objekt.

CKeyboardManager();

Poznámky

Ve většině případů nemusíte vytvářet CKeyboardManager přímo. Ve výchozím nastavení rozhraní vytvoří jednu za vás. Chcete-li získat ukazatel na CKeyboardManager, volání CWinAppEx::GetKeyboardManager. Pokud ho vytvoříte ručně, musíte ho inicializovat metodou CWinAppEx::InitKeyboardManager.

CKeyboardManager::CleanUp

Uvolní prostředky a vymaže CKeyboardManager všechna mapování klávesových zkratek.

static void CleanUp();

Poznámky

Další informace o klávesových zkratkách naleznete v tématu Přizpůsobení klávesnice a myši.

Tuto funkci nemusíte volat, když se aplikace ukončí, protože rozhraní ji volá automaticky během ukončení aplikace.

CKeyboardManager::FindDefaultAccelerator

Načte výchozí klávesovou zkratku pro zadaný příkaz a okno.

static BOOL FindDefaultAccelerator(
    UINT uiCmd,
    CString& str,
    CFrameWnd* pWndFrame,
    BOOL bIsDefaultFrame);

Parametry

uiCmd
[v] ID příkazu.

Str
[ven] Odkaz na CString objekt.

pWndFrame
[v] Ukazatel na okno rámečku.

bIsDefaultFrame
[v] Určuje, jestli je okno rámce výchozím oknem rámce.

Návratová hodnota

Nenulové, pokud je nalezen zástupce; jinak 0.

Poznámky

Tato metoda vyhledá příkaz určený uiCmd a načte výchozí klávesovou zkratku. Pak metoda vezme řetězec přidružený k této klávesové zkratky a zapíše hodnotu do parametru str .

CKeyboardManager::IsKeyHandled

Určuje, zda zadaný klíč zpracovává CKeyboardManager Třída.

static BOOL __stdcall IsKeyHandled(
    WORD nKey,
    BYTE fVirt,
    CFrameWnd* pWndFrame,
    BOOL bIsDefaultFrame);

Parametry

nKey
[v] Klíč, který chcete zkontrolovat.

fVirt
[v] Určuje chování klávesové zkratky. Seznam možných hodnot naleznete v tématu ACCEL Structure.

pWndFrame
[v] Okno s rámečkem. Tato metoda určuje, zda je v tomto rámci zpracována klávesová zkratka.

bIsDefaultFrame
[v] Logický parametr, který označuje, zda pWndFrame je výchozí okno rámce.

Návratová hodnota

TRUE, pokud je zpracována klávesová zkratka. FALSE, pokud klíč není zpracován nebo pokud pWndFrame je NULL.

Poznámky

Vstupní parametry musí odpovídat položce v tabulce akcelerátoru jak pro nKey, tak fVirt, aby bylo možné určit, jestli je v pWndFrame zpracována klávesová zkratka.

CKeyboardManager::IsKeyPrintable

Určuje, zda je znak tisknutelný.

static BOOL __stdcall IsKeyPrintable(const UINT nChar);

Parametry

nChar
[v] Znak, který tato metoda kontroluje.

Návratová hodnota

Nenulové, pokud je znak tisknutelný, nula, pokud není.

Poznámky

Tato metoda selže, pokud volání GetKeyboardState selže.

CKeyboardManager::IsShowAllAccelerators

Označuje, zda nabídky zobrazují všechny klávesové zkratky přidružené k příkazům nabídky nebo pouze výchozí klávesové zkratky.

static BOOL IsShowAllAccelerators();

Návratová hodnota

Nenulové, pokud aplikace zobrazí seznam všech klávesových zkratek pro příkazy nabídky; 0, pokud aplikace zobrazí pouze výchozí klávesové zkratky.

Poznámky

Aplikace zobrazí seznam klávesových zkratek pro příkazy nabídky na řádku nabídek. Pomocí funkce CKeyboardManager::ShowAllAccelerators můžete určit, jestli aplikace zobrazí seznam všech klávesových zkratek, nebo jenom výchozí klávesové zkratky.

CKeyboardManager::LoadState

Načte tabulky klávesových zkratek z registru Systému Windows.

BOOL LoadState(
    LPCTSTR lpszProfileName = NULL,
    CFrameWnd* pDefaultFrame = NULL);

Parametry

lpszProfileName
[v] Cesta registru, do které CKeyboardManager se ukládají data.

pDefaultFrame
[v] Ukazatel na okno rámečku, které se použije jako výchozí okno.

Návratová hodnota

Nenulové, pokud byl stav úspěšně načten nebo 0 jinak.

Poznámky

Pokud je parametr lpszProfileName NULL, tato metoda zkontroluje výchozí umístění registru pro CKeyboardManager data. Výchozí umístění registru je určeno třídou CWinAppEx. Data musí být dříve zapsána pomocí metody CKeyboardManager::SaveState.

Pokud nezadáte výchozí okno, použije se okno hlavního rámce vaší aplikace.

CKeyboardManager::ResetAll

Znovu načte tabulky klávesových zkratek z prostředku aplikace.

void ResetAll();

Poznámky

Tato funkce vymaže klávesové zkratky uložené v CKeyboardManager instanci. Potom znovu načte stav správce klávesnice z prostředku aplikace.

CKeyboardManager::SaveState

Uloží tabulky klávesových zkratek do registru Systému Windows.

BOOL SaveState(
    LPCTSTR lpszProfileName = NULL,
    CFrameWnd* pDefaultFrame = NULL);

Parametry

lpszProfileName
[v] Cesta registru pro uložení CKeyboardManager stavu.

pDefaultFrame
[v] Ukazatel na okno rámečku, které se stane výchozím oknem.

Návratová hodnota

Nenulové, pokud byl stav správce klávesnice úspěšně uložen, nebo 0 jinak.

Poznámky

Pokud je parametr lpszProfileName NULL, tato metoda zapíše CKeyboardManager stav do výchozího umístění určeného třídou CWinAppEx. Pokud zadáte umístění, můžete později načíst data pomocí metody CKeyboardManager::LoadState.

Pokud nezadáte výchozí okno, hlavní okno rámce se použije jako výchozí okno.

CKeyboardManager::ShowAllAccelerators

Zobrazí všechny klávesové zkratky přidružené k příkazům nabídky.

static void ShowAllAccelerators(
    BOOL bShowAll = TRUE,
    LPCTSTR lpszDelimiter = _afxDefaultAcceleratorDelimiter);

Parametry

bShowAll
[v] Pokud je hodnota TRUE, zobrazí se všechny klávesové zkratky. Pokud je hodnota FALSE, zobrazí se pouze první klávesová zkratka.

lpszDelimiter
[v] Řetězec, který se má vložit mezi klávesové zkratky. Tento oddělovač nemá žádný vliv, pokud se zobrazí jenom jedna klávesová zkratka.

Poznámky

Pokud má příkaz přidružených více než jednu klávesovou zkratku, zobrazí se ve výchozím nastavení jenom první klávesová zkratka. Tato funkce umožňuje zobrazit seznam všech klávesových zkratek přidružených ke všem příkazům.

Klávesové zkratky se zobrazí vedle příkazu na řádku nabídek. Pokud se zobrazí všechny klávesové zkratky, řetězec poskytnutý lpszDelimiter oddělí jednotlivé klávesové zkratky.

CKeyboardManager::TranslateCharToUpper

Převede znak na jeho horní registr.

static UINT TranslateCharToUpper(const UINT nChar);

Parametry

nChar
[v] Znak, který se má převést.

Návratová hodnota

Znak, který je horním registrem vstupního parametru.

CKeyboardManager::UpdateAccelTable

Aktualizuje tabulku klávesových zkratek novou tabulkou klávesových zkratek.

BOOL UpdateAccelTable(
    CMultiDocTemplate* pTemplate,
    LPACCEL lpAccel,
    int nSize,
    CFrameWnd* pDefaultFrame = NULL);

BOOL UpdateAccelTable(
    CMultiDocTemplate* pTemplate,
    HACCEL hAccelNew,
    CFrameWnd* pDefaultFrame = NULL);

Parametry

pTemplate
[v] Ukazatel na šablonu dokumentu

lpAccel
[v] Ukazatel na novou klávesovou zkratku.

NSize
[v] Velikost nové klávesové zkratky.

pDefaultFrame
[v] Ukazatel na výchozí okno rámce.

hAccelNew
[v] Popisovač nové klávesové zkratky.

Návratová hodnota

Nenulové, pokud je metoda úspěšná; jinak 0.

Poznámky

Tato funkce slouží k nahrazení existující tabulky zástupců novými klávesovými zkratkami pro několik objektů okna rámečku. Funkce obdrží šablonu dokumentu jako parametr pro získání přístupu ke všem objektům okna rámečku připojeným k dané šabloně dokumentu.

Viz také

Graf hierarchie
Třídy
CWinAppEx – třída
CWinAppEx::InitKeyboardManager
Přizpůsobení klávesnice a myši