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
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