Condividi tramite


Classe CKeyboardManager

Gestisce le tabelle di tasti di scelta rapida per la finestra cornice principale e le finestre cornice figlio.

Sintassi

class CKeyboardManager : public CObject

Membri

Costruttori pubblici

Nome Descrizione
CKeyboardManager::CKeyboardManager Costruisce un oggetto CKeyboardManager.

Metodi pubblici

Nome Descrizione
CKeyboardManager::CleanUp Cancella le tabelle dei tasti di scelta rapida.
CKeyboardManager::FindDefaultAccelerator Recupera il tasto di scelta rapida predefinito per il comando e la finestra specificati.
CKeyboardManager::IsKeyHandled Determina se una chiave viene gestita dalla tabella dell'acceleratore.
CKeyboardManager::IsKeyPrintable Indica se un carattere è stampabile.
CKeyboardManager::IsShowAllAccelerators Indica se i menu mostrano tutti i tasti di scelta rapida per un comando o solo il tasto di scelta rapida predefinito.
CKeyboardManager::LoadState Carica le tabelle dei tasti di scelta rapida dal Registro di sistema di Windows.
CKeyboardManager::ResetAll Ricarica le tabelle dei tasti di scelta rapida dalla risorsa dell'applicazione.
CKeyboardManager::SaveState Salva le tabelle dei tasti di scelta rapida nel Registro di sistema di Windows.
CKeyboardManager::ShowAllAccelerators Specifica se il framework visualizza tutti i tasti di scelta rapida per tutti i comandi o un singolo tasto di scelta rapida per ogni comando. Questo metodo non influisce sui comandi con un solo tasto di scelta rapida associato.
CKeyboardManager::TranslateCharToUpper Converte un carattere nel registro superiore.
CKeyboardManager::UpdateAccelTable Aggiorna una tabella dei tasti di scelta rapida con una nuova tabella dei tasti di scelta rapida.

Osservazioni:

I membri di questa classe consentono di salvare e caricare le tabelle dei tasti di scelta rapida nel Registro di sistema di Windows, usare un modello per aggiornare le tabelle dei tasti di taglio breve e trovare il tasto di scelta rapida predefinito per un comando in una finestra cornice. Inoltre, l'oggetto CKeyboardManager consente di controllare la modalità di visualizzazione dei tasti di scelta rapida all'utente.

Non è consigliabile creare un CKeyboardManager oggetto manualmente. Verrà creato automaticamente dal framework dell'applicazione. Tuttavia, è necessario chiamare CWinAppEx::InitKeyboardManager durante il processo di inizializzazione dell'applicazione. Per ottenere un puntatore al gestore della tastiera per l'applicazione, chiama CWinAppEx::GetKeyboardManager.

Esempio

Nell'esempio seguente viene illustrato come recuperare un puntatore a un CKeyboardManager oggetto da una CWinAppEx classe e come visualizzare tutti i tasti di scelta rapida associati ai comandi di menu. Questo frammento di codice fa parte dell'esempio pagine personalizzate.

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

Gerarchia di ereditarietà

CObject

CKeyboardManager

Requisiti

Intestazione: afxkeyboardmanager.h

CKeyboardManager::CKeyboardManager

Costruisce un oggetto CKeyboardManager.

CKeyboardManager();

Osservazioni:

Nella maggior parte dei casi, non è necessario creare direttamente un oggetto CKeyboardManager . Per impostazione predefinita, il framework ne crea uno automaticamente. Per ottenere un puntatore a CKeyboardManager, chiamare CWinAppEx::GetKeyboardManager. Se ne crei uno manualmente, devi inizializzarlo con il metodo CWinAppEx::InitKeyboardManager.

CKeyboardManager::CleanUp

Libera le CKeyboardManager risorse e cancella tutti i mapping dei tasti di scelta rapida.

static void CleanUp();

Osservazioni:

Per altre informazioni sui tasti di scelta rapida, vedere Personalizzazione della tastiera e del mouse.

Non è necessario chiamare questa funzione quando l'applicazione viene chiusa perché il framework lo chiama automaticamente durante l'uscita dall'applicazione.

CKeyboardManager::FindDefaultAccelerator

Recupera il tasto di scelta rapida predefinito per il comando e la finestra specificati.

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

Parametri

uiCmd
[in] ID comando.

str
[out] Riferimento a un oggetto CString.

pWndFrame
[in] Puntatore a una finestra cornice.

bIsDefaultFrame
[in] Specifica se la finestra cornice è la finestra cornice predefinita.

Valore restituito

Diverso da zero se viene trovato il collegamento; in caso contrario, 0.

Osservazioni:

Questo metodo cerca il comando specificato da uiCmd e recupera il tasto di scelta rapida predefinito. Il metodo accetta quindi la stringa associata a questo tasto di scelta rapida e scrive il valore nel parametro str .

CKeyboardManager::IsKeyHandled

Determina se la chiave specificata viene gestita dalla classe CKeyboardManager.

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

Parametri

nKey
[in] Chiave da controllare.

fVirt
[in] Specifica il comportamento del tasto di scelta rapida. Per un elenco dei valori possibili, vedere Struttura ACCEL.

pWndFrame
[in] Finestra cornice. Questo metodo determina se un tasto di scelta rapida viene gestito in questo frame.

bIsDefaultFrame
[in] Parametro booleano che indica se pWndFrame è la finestra cornice predefinita.

Valore restituito

TRUE se il tasto di scelta rapida viene gestito. FALSE se la chiave non viene gestita o se pWndFrame è NULL.

Osservazioni:

I parametri di input devono corrispondere alla voce nella tabella degli acceleratori sia per nKey che per fVirt per determinare se un tasto di scelta rapida viene gestito in pWndFrame.

CKeyboardManager::IsKeyPrintable

Indica se un carattere è stampabile.

static BOOL __stdcall IsKeyPrintable(const UINT nChar);

Parametri

nChar
[in] Carattere controllato da questo metodo.

Valore restituito

Diverso da zero se il carattere è stampabile, zero in caso contrario.

Osservazioni:

Questo metodo ha esito negativo se una chiamata a GetKeyboardState ha esito negativo.

CKeyboardManager::IsShowAllAccelerators

Indica se i menu mostrano tutti i tasti di scelta rapida associati ai comandi di menu o solo i tasti di scelta rapida predefiniti.

static BOOL IsShowAllAccelerators();

Valore restituito

Diverso da zero se l'applicazione elenca tutti i tasti di scelta rapida per i comandi di menu; 0 se l'applicazione visualizza solo i tasti di scelta rapida predefiniti.

Osservazioni:

L'applicazione elenca i tasti di scelta rapida per i comandi di menu nella barra dei menu. Usare la funzione CKeyboardManager::ShowAllAccelerators per controllare se l'applicazione elenca tutti i tasti di scelta rapida o solo i tasti di scelta rapida predefiniti.

CKeyboardManager::LoadState

Carica le tabelle dei tasti di scelta rapida dal Registro di sistema di Windows.

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

Parametri

lpszProfileName
[in] Percorso del Registro di sistema in cui CKeyboardManager vengono salvati i dati.

pDefaultFrame
[in] Puntatore a una finestra cornice da usare come finestra predefinita.

Valore restituito

Diverso da zero se lo stato è stato caricato correttamente o 0 in caso contrario.

Osservazioni:

Se il parametro lpszProfileName è NULL, questo metodo controlla la posizione predefinita del Registro di sistema per i CKeyboardManager dati. Il percorso predefinito del Registro di sistema viene specificato dalla classe CWinAppEx. I dati devono essere scritti in precedenza con il metodo CKeyboardManager::SaveState.

Se non si specifica una finestra predefinita, verrà usata la finestra cornice principale dell'applicazione.

CKeyboardManager::ResetAll

Ricarica le tabelle dei tasti di scelta rapida dalla risorsa dell'applicazione.

void ResetAll();

Osservazioni:

Questa funzione cancella i collegamenti archiviati nell'istanza CKeyboardManager di . Ricarica quindi lo stato del gestore della tastiera dalla risorsa dell'applicazione.

CKeyboardManager::SaveState

Salva le tabelle dei tasti di scelta rapida nel Registro di sistema di Windows.

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

Parametri

lpszProfileName
[in] Percorso del Registro di sistema per salvare lo CKeyboardManager stato.

pDefaultFrame
[in] Puntatore a una finestra cornice che diventa la finestra predefinita.

Valore restituito

Diverso da zero se lo stato di gestione della tastiera è stato salvato correttamente o 0 in caso contrario.

Osservazioni:

Se il parametro lpszProfileName è NULL, questo metodo scriverà lo CKeyboardManager stato nel percorso predefinito specificato dalla classe CWinAppEx. Se si specifica un percorso, è possibile caricare i dati in un secondo momento usando il metodo CKeyboardManager::LoadState.

Se non si specifica una finestra predefinita, la finestra cornice principale verrà usata come finestra predefinita.

CKeyboardManager::ShowAllAccelerators

Mostra tutti i tasti di scelta rapida associati ai comandi di menu.

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

Parametri

bShowAll
[in] Se TRUE, verranno visualizzati tutti i tasti di scelta rapida. Se FALSE, verrà visualizzato solo il primo tasto di scelta rapida.

lpszDelimiter
[in] Stringa da inserire tra i tasti di scelta rapida. Questo delimitatore non ha alcun effetto se viene visualizzato un solo tasto di scelta rapida.

Osservazioni:

Per impostazione predefinita, se a un comando sono associati più tasti di scelta rapida, verrà visualizzato solo il primo tasto di scelta rapida. Questa funzione consente di elencare tutti i tasti di scelta rapida associati a tutti i comandi.

I tasti di scelta rapida verranno elencati accanto al comando nella barra dei menu. Se vengono visualizzati tutti i tasti di scelta rapida, la stringa fornita da lpszDelimiter separa i singoli tasti di scelta rapida.

CKeyboardManager::TranslateCharToUpper

Converte un carattere nel registro superiore.

static UINT TranslateCharToUpper(const UINT nChar);

Parametri

nChar
[in] Carattere da convertire.

Valore restituito

Carattere che rappresenta il registro superiore del parametro di input.

CKeyboardManager::UpdateAccelTable

Aggiorna una tabella dei tasti di scelta rapida con una nuova tabella dei tasti di scelta rapida.

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

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

Parametri

pTemplate
[in] Puntatore a un modello di documento.

lpAccel
[in] Puntatore al nuovo tasto di scelta rapida.

nSize
[in] Dimensioni della nuova tabella di scelta rapida.

pDefaultFrame
[in] Puntatore alla finestra cornice predefinita.

hAccelNew
[in] Handle per la nuova tabella di scelta rapida.

Valore restituito

Diverso da zero se il metodo ha esito positivo; in caso contrario, 0.

Osservazioni:

Utilizzare questa funzione per sostituire la tabella di scelta rapida esistente con i nuovi tasti di scelta rapida per diversi oggetti finestra cornice. La funzione riceve un modello di documento come parametro per ottenere l'accesso a tutti gli oggetti finestra cornice connessi al modello di documento specificato.

Vedi anche

Grafico della gerarchia
Classi
Classe CWinAppEx
CWinAppEx::InitKeyboardManager
Personalizzazione di tastiera e mouse