Share via


CKeyboardManager-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Beheert sneltoetstabellen voor het hoofdframevenster en onderliggende framevensters.

Syntaxis

class CKeyboardManager : public CObject

Leden

Openbare constructors

Naam Description
CKeyboardManager::CKeyboardManager Maakt een CKeyboardManager object.

Openbare methoden

Naam Description
CKeyboardManager::CleanUp Hiermee worden de sneltoetstabellen gewist.
CKeyboardManager::FindDefaultAccelerator Haalt de standaardsneltoets voor de opgegeven opdracht en het opgegeven venster op.
CKeyboardManager::IsKeyHandled Bepaalt of een sleutel wordt verwerkt door de acceleratortabel.
CKeyboardManager::IsKeyPrintable Geeft aan of een teken kan worden afgedrukt.
CKeyboardManager::IsShowAllAccelerators Hiermee wordt aangegeven of in menu's alle sneltoetsen voor een opdracht of alleen de standaardsneltoets worden weergegeven.
CKeyboardManager::LoadState Laadt de sneltoetstabellen uit het Windows-register.
CKeyboardManager::ResetAll Laadt de sneltoetstabellen opnieuw vanuit de toepassingsresource.
CKeyboardManager::SaveState Hiermee worden de sneltoetstabellen opgeslagen in het Windows-register.
CKeyboardManager::ShowAllAccelerators Hiermee geeft u op of in het framework alle sneltoetsen voor alle opdrachten of één sneltoets voor elke opdracht worden weergegeven. Deze methode heeft geen invloed op opdrachten met slechts één gekoppelde sneltoets.
CKeyboardManager::TranslateCharToUpper Converteert een teken naar het bovenste register.
CKeyboardManager::UpdateAccelTable Hiermee werkt u een sneltoetstabel bij met een nieuwe sneltoetstabel.

Opmerkingen

Met de leden van deze klasse kunt u sneltoetstabellen opslaan en laden in het Windows-register, een sjabloon gebruiken om de korte snijsleuteltabellen bij te werken en de standaardsneltoets voor een opdracht in een framevenster te vinden. Daarnaast kunt u met het CKeyboardManager object bepalen hoe sneltoetsen worden weergegeven aan de gebruiker.

U moet geen object handmatig maken CKeyboardManager . Deze wordt automatisch gemaakt door het framework van uw toepassing. U moet echter CWinAppEx::InitKeyboardManager aanroepen tijdens het initialisatieproces van uw toepassing. Als u een aanwijzer wilt krijgen naar het toetsenbordbeheer voor uw toepassing, roept u CWinAppEx::GetKeyboardManager aan.

Example

In het volgende voorbeeld ziet u hoe u een aanwijzer naar een CKeyboardManager object uit een CWinAppEx klasse ophaalt en hoe u alle sneltoetsen weergeeft die zijn gekoppeld aan menuopdrachten. Dit codefragment maakt deel uit van het voorbeeld aangepaste pagina's.

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

Overnamehiërarchie

CObject

CKeyboardManager

Requirements

Header: afxkeyboardmanager.h

CKeyboardManager::CKeyboardManager

Maakt een CKeyboardManager object.

CKeyboardManager();

Opmerkingen

In de meeste gevallen hoeft u niet rechtstreeks een CKeyboardManager maken. Standaard maakt het framework er een voor u. Als u een aanwijzer naar de CKeyboardManageraanwijzer wilt krijgen, roept u CWinAppEx::GetKeyboardManager aan. Als u er handmatig een maakt, moet u deze initialiseren met de methode CWinAppEx::InitKeyboardManager.

CKeyboardManager::CleanUp

Hiermee worden de CKeyboardManager resources vrijgemaakt en worden alle sneltoetstoewijzingen gewist.

static void CleanUp();

Opmerkingen

Zie Toetsenbord- en muisaanpassing voor meer informatie over sneltoetsen.

U hoeft deze functie niet aan te roepen wanneer uw toepassing wordt afgesloten, omdat het framework deze automatisch aanroept tijdens het afsluiten van de toepassing.

CKeyboardManager::FindDefaultAccelerator

Haalt de standaardsneltoets voor de opgegeven opdracht en het opgegeven venster op.

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

Parameterwaarden

uiCmd
[in] De opdracht-id.

Str
[uit] Een verwijzing naar een CString object.

pWndFrame
[in] Een aanwijzer naar een framevenster.

bIsDefaultFrame
[in] Hiermee geeft u op of het framevenster het standaardframevenster is.

Retourwaarde

Niet-nul als de snelkoppeling wordt gevonden; anders 0.

Opmerkingen

Met deze methode wordt de opdracht opgezoekt die is opgegeven door uiCmd en wordt de standaardsneltoets opgehaald. Vervolgens gebruikt de methode de tekenreeks die aan deze sneltoets is gekoppeld en schrijft de waarde naar de str-parameter .

CKeyboardManager::IsKeyHandled

Bepaalt of de opgegeven sleutel wordt verwerkt door de CKeyboardManager-klasse.

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

Parameterwaarden

nKey
[in] De sleutel die moet worden gecontroleerd.

fVirt
[in] Hiermee geeft u het gedrag van de sneltoets. Zie ACCEL-structuur voor een lijst met mogelijke waarden.

pWndFrame
[in] Een framevenster. Met deze methode wordt bepaald of een sneltoets in dit frame wordt verwerkt.

bIsDefaultFrame
[in] Een Booleaanse parameter die aangeeft of pWndFrame het standaardframevenster is.

Retourwaarde

WAAR als de sneltoets wordt verwerkt. FALSE als de sleutel niet wordt verwerkt of als pWndFrame NULL is.

Opmerkingen

De invoerparameters moeten overeenkomen met de vermelding in de acceleratortabel voor zowel nKey als fVirt om te bepalen of een sneltoets wordt verwerkt in pWndFrame.

CKeyboardManager::IsKeyPrintable

Geeft aan of een teken kan worden afgedrukt.

static BOOL __stdcall IsKeyPrintable(const UINT nChar);

Parameterwaarden

Nchar
[in] Het teken dat met deze methode wordt gecontroleerd.

Retourwaarde

Niet-nul als het teken afdrukbaar is, nul als dat niet het is.

Opmerkingen

Deze methode mislukt als een aanroep naar GetKeyboardState mislukt.

CKeyboardManager::IsShowAllAccelerators

Geeft aan of in menu's alle sneltoetsen worden weergegeven die zijn gekoppeld aan menuopdrachten of alleen de standaardsneltoetsen.

static BOOL IsShowAllAccelerators();

Retourwaarde

Niet-nul als de toepassing alle sneltoetsen voor menuopdrachten vermeldt; 0 als de toepassing alleen standaardsneltoetsen weergeeft.

Opmerkingen

De toepassing bevat de sneltoetsen voor menuopdrachten in de menubalk. Gebruik de functie CKeyboardManager::ShowAllAccelerators om te bepalen of de toepassing alle sneltoetsen of alleen de standaardsneltoetsen bevat.

CKeyboardManager::LoadState

Laadt de sneltoetstabellen uit het Windows-register.

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

Parameterwaarden

lpszProfileName
[in] Het registerpad waar CKeyboardManager gegevens worden opgeslagen.

pDefaultFrame
[in] Een aanwijzer naar een framevenster dat moet worden gebruikt als het standaardvenster.

Retourwaarde

Niet-nul als de status is geladen of anders 0.

Opmerkingen

Als de parameter lpszProfileName NULL is, controleert deze methode de standaardregisterlocatie voor CKeyboardManager gegevens. De standaardregisterlocatie wordt opgegeven door de CWinAppEx-klasse. De gegevens moeten eerder worden geschreven met de methode CKeyboardManager::SaveState.

Als u geen standaardvenster opgeeft, wordt het hoofdframevenster van uw toepassing gebruikt.

CKeyboardManager::ResetAll

Laadt de sneltoetstabellen opnieuw vanuit de toepassingsresource.

void ResetAll();

Opmerkingen

Met deze functie worden de sneltoetsen gewist die zijn opgeslagen in het CKeyboardManager exemplaar. Vervolgens wordt de status van het toetsenbordbeheer opnieuw geladen vanuit de toepassingsresource.

CKeyboardManager::SaveState

Hiermee worden de sneltoetstabellen opgeslagen in het Windows-register.

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

Parameterwaarden

lpszProfileName
[in] Het registerpad voor het opslaan van de CKeyboardManager status.

pDefaultFrame
[in] Een aanwijzer naar een framevenster dat het standaardvenster wordt.

Retourwaarde

Niet-zero als de status van de toetsenbordbeheer is opgeslagen, of anders 0.

Opmerkingen

Als de parameter lpszProfileName NULL is, schrijft deze methode de CKeyboardManager status naar de standaardlocatie die is opgegeven door de CWinAppEx-klasse. Als u een locatie opgeeft, kunt u de gegevens later laden met behulp van de methode CKeyboardManager::LoadState.

Als u geen standaardvenster opgeeft, wordt het hoofdframevenster gebruikt als het standaardvenster.

CKeyboardManager::ShowAllAccelerators

Geeft alle sneltoetsen weer die zijn gekoppeld aan menuopdrachten.

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

Parameterwaarden

bShowAll
[in] Als WAAR, worden alle sneltoetsen weergegeven. Als ONWAAR, wordt alleen de eerste sneltoets weergegeven.

lpszDelimiter
[in] Een tekenreeks die moet worden ingevoegd tussen sneltoetsen. Dit scheidingsteken heeft geen effect als er slechts één sneltoets wordt weergegeven.

Opmerkingen

Als aan een opdracht standaard meer dan één sneltoets is gekoppeld, wordt alleen de eerste sneltoets weergegeven. Met deze functie kunt u alle sneltoetsen weergeven die aan alle opdrachten zijn gekoppeld.

De sneltoetsen worden weergegeven naast de opdracht in de menubalk. Als alle sneltoetsen worden weergegeven, scheidt de tekenreeks van lpszDelimiter afzonderlijke sneltoetsen.

CKeyboardManager::TranslateCharToUpper

Converteert een teken naar het bovenste register.

static UINT TranslateCharToUpper(const UINT nChar);

Parameterwaarden

Nchar
[in] Het teken dat moet worden geconverteerd.

Retourwaarde

Het teken dat het bovenste register van de invoerparameter is.

CKeyboardManager::UpdateAccelTable

Hiermee werkt u een sneltoetstabel bij met een nieuwe sneltoetstabel.

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

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

Parameterwaarden

pTemplate
[in] Een aanwijzer naar een documentsjabloon.

lpAccel
[in] Een aanwijzer naar de nieuwe sneltoets.

nSize
[in] De grootte van de nieuwe snelkoppelingstabel.

pDefaultFrame
[in] Een aanwijzer naar het standaardframevenster.

hAccelNew
[in] Een ingang naar de nieuwe snelkoppelingstabel.

Retourwaarde

Niet-nul als de methode is geslaagd; anders 0.

Opmerkingen

Gebruik deze functie om de bestaande sneltoetsentabel te vervangen door nieuwe sneltoetsen voor verschillende framevensterobjecten. De functie ontvangt een documentsjabloon als parameter om toegang te krijgen tot alle framevensterobjecten die zijn verbonden met de opgegeven documentsjabloon.

Zie ook

Hiërarchiegrafiek
Klassen
CWinAppEx-klasse
CWinAppEx::InitKeyboardManager
toetsenbord en muis aanpassen