Partilhar via


Classe CKeyboard Manager

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Gerir tabelas de teclas de atalhos para a janela principal e para as janelas filhos.

Sintaxe

class CKeyboardManager : public CObject

Membros

Construtores Públicos

Nome Description
CKeyboard Manager::CKeyboard Manager Constrói um CKeyboardManager objeto.

Métodos Públicos

Nome Description
CKeyboardManager::CleanUp Limpa as tabelas de teclas de atalho.
CKeyboardManager::FindDefaultAccelerator Recupera a tecla de atalho padrão para o comando e janela especificados.
CKeyboard Manager::IsKeyHandled Determina se uma chave é manipulada pela tabela aceleradora.
CKeyboard Manager::IsKeyPrintable Indica se um carácter é imprimível.
CKeyboard Manager::IsShowAllAccelerators Indica se os menus mostram todas as teclas de atalho de um comando ou apenas a tecla de atalho padrão.
CKeyboard Manager::LoadState Carrega as tabelas de teclas de atalhos a partir do registo do Windows.
CKeyboard Manager::ResetAll Recarrega as tabelas de teclas de atalho a partir do recurso da aplicação.
CKeyboard Manager::SaveState Guarda as tabelas de teclas de atalho no registo do Windows.
CKeyboard Manager::ShowAllAccelerators Especifica se o framework exibe todas as teclas de atalho para todos os comandos, ou uma única tecla de atalho para cada comando. Este método não afeta comandos que tenham apenas uma tecla de atalho associada.
CKeyboard Manager::Traduzir CharToUpper Converte um carácter para o registo agudo.
CKeyboard Manager::UpdateAccelTable Atualiza uma tabela de teclas de atalhos com uma nova tabela de teclas de atalhos.

Observações

Os membros desta classe permitem-lhe guardar e carregar tabelas de teclas de atalho no registo do Windows, usar um modelo para atualizar as tabelas de teclas de atalho e encontrar a tecla de atalho padrão para um comando numa janela de frame. Além disso, o CKeyboardManager objeto permite-lhe controlar como as teclas de atalho são apresentadas ao utilizador.

Não deves criar um CKeyboardManager objeto manualmente. Será criado automaticamente pelo framework da sua aplicação. No entanto, deve ligar para CWinAppEx::InitKeyboardManager durante o processo de inicialização da sua aplicação. Para obter uma indicação para o gestor de teclado da sua aplicação, ligue para CWinAppEx::GetKeyboardManager.

Example

O exemplo seguinte demonstra como recuperar um ponteiro para um CKeyboardManager objeto a partir de uma CWinAppEx classe e como mostrar todas as teclas de atalho associadas aos comandos do menu. Este excerto de código faz parte do exemplo de Páginas Personalizadas.

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

Hierarquia de herança

CObject

CKeyboardManager

Requerimentos

Cabeçalho: afxkeyboardmanager.h

CKeyboard Manager::CKeyboard Manager

Constrói um CKeyboardManager objeto.

CKeyboardManager();

Observações

Na maioria dos casos, não é necessário criar uma CKeyboardManager carta direta. Por defeito, o framework cria um para si. Para obter uma indicação para , CKeyboardManagerligue para CWinAppEx::GetKeyboardManager. Se criar um manualmente, deve inicializá-lo com o método CWinAppEx::InitKeyboardManager.

CKeyboardManager::CleanUp

Liberta os CKeyboardManager recursos e limpa todos os atalhos de mapeamento de teclas.

static void CleanUp();

Observações

Para mais informações sobre teclas de atalho, consulte Personalização de Teclado e Rato.

Não é necessário chamar esta função quando a sua aplicação sai porque o framework chama-a automaticamente durante a saída da aplicação.

CKeyboardManager::FindDefaultAccelerator

Recupera a tecla de atalho padrão para o comando e janela especificados.

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

Parâmetros

uiCmd
[dentro] O ID do comando.

STR
[fora] Uma referência a um CString objeto.

pWndFrame
[dentro] Um apontador para uma janela de moldura.

bIsDefaultFrame
[dentro] Especifica se a janela de frame é a janela de frame padrão.

Valor de retorno

Diferente de zero se o atalho for encontrado; caso contrário, 0.

Observações

Este método procura o comando especificado pelo uiCmd e recupera a tecla de atalho padrão. Depois, o método pega na string associada a esta tecla de atalho e escreve o valor no parâmetro str .

CKeyboard Manager::IsKeyHandled

Determina se a chave especificada é tratada pela Classe CKeyboardManager.

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

Parâmetros

nKey
[dentro] A chave para verificar.

fVirt
[dentro] Especifica o comportamento da tecla de atalho. Para uma lista de valores possíveis, veja Estrutura ACCEL.

pWndFrame
[dentro] Uma janela de moldura. Este método determina se uma tecla de atalho é tratada neste frame.

bIsDefaultFrame
[dentro] Um parâmetro booleano que indica se pWndFrame é a janela de frame predefinida.

Valor de retorno

TRUE se a tecla de atalho for tratada. FALSE se a chave não for tratada ou se pWndFrame for NULL.

Observações

Os parâmetros de entrada devem corresponder à entrada na tabela aceleradora tanto para nKey como para fVirt para determinar se uma tecla de atalho é tratada em pWndFrame.

CKeyboard Manager::IsKeyPrintable

Indica se um carácter é imprimível.

static BOOL __stdcall IsKeyPrintable(const UINT nChar);

Parâmetros

nChar
[dentro] O carácter que este método verifica.

Valor de retorno

Não zero se o carácter for imprimível, zero se não for.

Observações

Este método falha se uma chamada ao GetKeyboardState falhar.

CKeyboard Manager::IsShowAllAccelerators

Indica se os menus mostram todas as teclas de atalho associadas aos comandos do menu ou apenas as teclas de atalho padrão.

static BOOL IsShowAllAccelerators();

Valor de retorno

Não zero se a aplicação listar todas as teclas de atalho para comandos de menu; 0 se a aplicação mostrar apenas as teclas de atalho por defeito.

Observações

A aplicação lista as teclas de atalho para comandos de menu na barra de menus. Use a função CKeyboardManager::ShowAllAccelerators para controlar se a aplicação lista todas as teclas de atalho ou apenas as teclas de atalho padrão.

CKeyboard Manager::LoadState

Carrega as tabelas de teclas de atalhos a partir do registo do Windows.

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

Parâmetros

lpszProfileName
[dentro] O caminho do registo onde CKeyboardManager os dados são guardados.

pDefaultFrame
[dentro] Um ponteiro para uma janela de frame para usar como janela predefinida.

Valor de retorno

Não zero se o estado foi carregado com sucesso ou 0 caso contrário.

Observações

Se o parâmetro lpszProfileName for NULL, este método verifica a localização padrão do registo para os CKeyboardManager dados. A localização padrão do registo é especificada pela Classe CWinAppEx. Os dados devem ser previamente escritos com o método CKeyboardManager::SaveState.

Se não especificar uma janela predefinida, a janela principal da sua aplicação será utilizada.

CKeyboard Manager::ResetAll

Recarrega as tabelas de teclas de atalho a partir do recurso da aplicação.

void ResetAll();

Observações

Esta função elimina os atalhos armazenados na CKeyboardManager instância. Depois, recarrega o estado do gestor de teclado a partir do recurso da aplicação.

CKeyboard Manager::SaveState

Guarda as tabelas de teclas de atalho no registo do Windows.

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

Parâmetros

lpszProfileName
[dentro] O caminho do registo para salvar o CKeyboardManager estado.

pDefaultFrame
[dentro] Um apontador para uma janela de frame que se torna a janela padrão.

Valor de retorno

Não zero se o estado do gestor de teclado foi guardado com sucesso, ou 0 caso contrário.

Observações

Se o parâmetro lpszProfileName for NULL, este método irá escrever o CKeyboardManager estado na localização padrão especificada pela Classe CWinAppEx. Se especificar uma localização, pode carregar os dados mais tarde usando o método CKeyboardManager::LoadState.

Se não especificares uma janela por defeito, a janela do quadro principal será usada como janela predefinida.

CKeyboard Manager::ShowAllAccelerators

Mostra todas as teclas de atalho associadas aos comandos de menu.

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

Parâmetros

bShowAll
[dentro] Se for TRUE, todas as teclas de atalho serão exibidas. Se for FALSE, apenas a primeira tecla de atalho será exibida.

lpszDelimiter
[dentro] Uma sequência para inserir entre teclas de atalho. Este delimitador não tem efeito se apenas uma tecla de atalho for apresentada.

Observações

Por defeito, se um comando tiver mais do que uma tecla de atalho associada, apenas a primeira tecla de atalho será mostrada. Esta função permite-lhe listar todas as teclas de atalho associadas a todos os comandos.

As teclas de atalho estarão listadas ao lado do comando na barra de menu. Se todas as teclas de atalho forem exibidas, a cadeia fornecida pelo lpszDelimiter irá separar as teclas de atalho individuais.

CKeyboard Manager::Traduzir CharToUpper

Converte um carácter para o registo agudo.

static UINT TranslateCharToUpper(const UINT nChar);

Parâmetros

nChar
[dentro] A personagem a converter.

Valor de retorno

O carácter que é o registo superior do parâmetro de entrada.

CKeyboard Manager::UpdateAccelTable

Atualiza uma tabela de teclas de atalhos com uma nova tabela de teclas de atalhos.

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

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

Parâmetros

pTemplate
[dentro] Um apontador para um modelo de documento.

lpAccel
[dentro] Um apontador para a nova tecla de atalho.

nTamanho
[dentro] O tamanho da nova tabela de atalhos.

pDefaultFrame
[dentro] Um ponteiro para a janela de frames padrão.

hAccelNew
[dentro] Uma alça para a nova tabela de atalhos.

Valor de retorno

Diferente de zero se o método for bem-sucedido; caso contrário, 0.

Observações

Use esta função para substituir a tabela de atalhos existente por novas teclas de atalho para vários objetos de janela de frame. A função recebe um modelo de documento como parâmetro para obter acesso a todos os objetos de janela de frames ligados ao modelo de documento dado.

Consulte também

Gráfico de Hierarquia
Classes
Classe CWinAppEx
CWinAppEx::InitKeyboardManager
de personalização de teclado e mouse