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