Classe CKeyboardManager

Gerencia tabelas de teclas de atalho para a janela de quadro principal e janelas de quadro filho.

Sintaxe

class CKeyboardManager : public CObject

Membros

Construtores públicos

Nome Descrição
CKeyboardManager::CKeyboardManager Constrói um objeto CKeyboardManager.

Métodos públicos

Nome Descrição
CKeyboardManager::CleanUp Limpa as tabelas de teclas de atalho.
CKeyboardManager::FindDefaultAccelerator Recupera a chave de atalho padrão para o comando e a janela especificados.
CKeyboardManager::IsKeyHandled Determina se uma chave é manipulada pela tabela de aceleradores.
CKeyboardManager::IsKeyPrintable Indica se um caractere é imprimível.
CKeyboardManager::IsShowAllAccelerators Indica se os menus mostram todas as teclas de atalho para um comando ou apenas a tecla de atalho padrão.
CKeyboardManager::LoadState Carrega as tabelas de teclas de atalho do Registro do Windows.
CKeyboardManager::ResetAll Recarrega as tabelas de teclas de atalho do recurso do aplicativo.
CKeyboardManager::SaveState Salva as tabelas de teclas de atalho no Registro do Windows.
CKeyboardManager::ShowAllAccelerators Especifica se a estrutura exibe todas as teclas de atalho para todos os comandos ou uma única tecla de atalho para cada comando. Esse método não afeta comandos que têm apenas uma tecla de atalho associada.
CKeyboardManager::TranslateCharToUpper Converte um caractere em seu registro superior.
CKeyboardManager::UpdateAccelTable Atualiza uma tabela de teclas de atalho com uma nova tabela de teclas de atalho.

Comentários

Os membros dessa classe permitem que você salve e carregue tabelas de teclas de atalho no registro do Windows, use um modelo para atualizar as tabelas de teclas de atalho e localize a tecla de atalho padrão para um comando em uma janela de quadro. Além disso, o objeto CKeyboardManager permite controlar como as teclas de atalho são exibidas para o usuário.

Você não deve criar um objeto CKeyboardManager manualmente. Ele será criado automaticamente pela estrutura do aplicativo. No entanto, você deve chamar CWinAppEx::InitKeyboardManager durante o processo de inicialização do aplicativo. Para obter um ponteiro para o gerenciador do teclado para seu aplicativo, chame CWinAppEx::GetKeyboardManager.

Exemplo

O exemplo a seguir demonstra como recuperar um ponteiro para um objeto CKeyboardManager de uma classe CWinAppEx e como mostrar todas as teclas de atalho associadas aos comandos de menu. Este snippet de código faz parte da amostra de Páginas personalizadas.

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

Hierarquia de herança

CObject

CKeyboardManager

Requisitos

Cabeçalho: afxkeyboardmanager.h

CKeyboardManager::CKeyboardManager

Constrói um objeto CKeyboardManager.

CKeyboardManager();

Comentários

Na maioria dos casos, você não precisa criar um CKeyboardManager diretamente. Por padrão, a estrutura cria um para você. Para obter um ponteiro para CKeyboardManager, chame CWinAppEx::GetKeyboardManager. Se você criar um manualmente, deverá inicializá-lo com o método CWinAppEx::InitKeyboardManager.

CKeyboardManager::CleanUp

Libera os recursos CKeyboardManager e limpa todos os mapeamentos de teclas de atalho.

static void CleanUp();

Comentários

Para obter mais informações sobre teclas de atalho, consulte Personalização de teclado e mouse.

Você não precisa chamar essa função quando seu aplicativo é encerrado porque a estrutura a chama automaticamente durante a saída do aplicativo.

CKeyboardManager::FindDefaultAccelerator

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

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

Parâmetros

uiCmd
[in] A ID de comando.

str
[out] Uma referência a um objeto CString.

pWndFrame
[in] Um ponteiro para uma janela de quadro.

bIsDefaultFrame
[in] Especifica se a janela de quadro é a janela de quadro padrão.

Valor de Devolução

Não zero se o elemento foi encontrado; caso contrário, 0.

Comentários

Esse método pesquisa o comando especificado por uiCmd e recupera a tecla de atalho padrão. Em seguida, o método usa a cadeia de caracteres associada a essa chave de atalho e grava o valor no parâmetro str .

CKeyboardManager::IsKeyHandled

Determina se a tecla especificada é manipulada pela Classe CKeyboardManager.

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

Parâmetros

nKey
[in] A tecla a ser verificada.

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

pWndFrame
[in] Uma janela de quadro. Esse método determina se uma tecla de atalho é manipulada nesse quadro.

bIsDefaultFrame
[in] Um parâmetro booliano que indica se pWndFrame é a janela de quadro padrão.

Valor de Devolução

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

Comentários

Os parâmetros de entrada devem corresponder à entrada na tabela de aceleradores para nKey e fVirt para determinar se uma tecla de atalho é manipulada em pWndFrame.

CKeyboardManager::IsKeyPrintable

Indica se um caractere é imprimível.

static BOOL __stdcall IsKeyPrintable(const UINT nChar);

Parâmetros

nChar
[in] O caractere que esse método verifica.

Valor de Devolução

Diferente de zero se o caractere for imprimível, zero se não for.

Comentários

Esse método falhará se uma chamada para GetKeyboardState falhar.

CKeyboardManager::IsShowAllAccelerators

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

static BOOL IsShowAllAccelerators();

Valor de Devolução

Diferente de zero se o aplicativo listar todas as teclas de atalho para comandos de menu; 0 se o aplicativo exibir apenas as teclas de atalho padrão.

Comentários

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

CKeyboardManager::LoadState

Carrega as tabelas de teclas de atalho do Registro do Windows.

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

Parâmetros

lpszProfileName
[in] O caminho do Registro em que os dados CKeyboardManager são salvos.

pDefaultFrame
[in] Um ponteiro para uma janela de quadro a ser usada como a janela padrão.

Valor de Devolução

Não zero se o estado tiver sido carregado com êxito ou 0 de outra forma.

Comentários

Se o parâmetro lpszProfileName for NULL, esse método verificará o local padrão do Registro em busca de dados CKeyboardManager. O local padrão do Registro é especificado pela Classe CWinAppEx. Os dados devem ser gravados anteriormente com o método CKeyboardManager::SaveState.

Se você não especificar uma janela padrão, a janela de quadro principal do aplicativo será usada.

CKeyboardManager::ResetAll

Recarrega as tabelas de teclas de atalho do recurso do aplicativo.

void ResetAll();

Comentários

Essa função limpa os atalhos armazenados na instância CKeyboardManager. Em seguida, ela recarregará o estado do gerenciador de teclado do recurso do aplicativo.

CKeyboardManager::SaveState

Salva as tabelas de teclas de atalho no Registro do Windows.

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

Parâmetros

lpszProfileName
[in] O caminho do Registro para salvar o estado CKeyboardManager.

pDefaultFrame
[in] Um ponteiro para uma janela de quadro que se torna a janela padrão.

Valor de Devolução

Não zero se o estado do gerenciador de teclado tiver sido salvo com êxito ou 0 de outra forma.

Comentários

Se o parâmetro lpszProfileName for NULL, esse método gravará o estado CKeyboardManager no local padrão especificado pela Classe CWinAppEx. Se você especificar um local, poderá carregar os dados mais tarde usando o método CKeyboardManager::LoadState.

Se você não especificar uma janela padrão, a janela de quadro principal será usada como a padrão.

CKeyboardManager::ShowAllAccelerators

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

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

Parâmetros

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

lpszDelimiter
[in] Uma cadeia de caracteres a ser inserida entre as teclas de atalho. Esse delimitador não terá efeito se apenas uma tecla de atalho for exibida.

Comentários

Por padrão, se um comando tiver mais de uma tecla de atalho associada a ele, somente a primeira tecla de atalho será mostrada. Essa função permite que você liste todas as teclas de atalho associadas a todos os comandos.

As teclas de atalho serão listadas ao lado do comando na barra de menus. Se todas as teclas de atalho forem exibidas, a cadeia de caracteres fornecida por lpszDelimiter separará as teclas de atalho individuais.

CKeyboardManager::TranslateCharToUpper

Converte um caractere em seu registro superior.

static UINT TranslateCharToUpper(const UINT nChar);

Parâmetros

nChar
[in] O caractere a ser convertido.

Valor de Devolução

O caractere que é o registro superior do parâmetro de entrada.

CKeyboardManager::UpdateAccelTable

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

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

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

Parâmetros

pTemplate
[in] Um ponteiro para um modelo de documento.

lpAccel
[in] Um ponteiro para a nova tecla de atalho.

nSize
[in] O tamanho da nova tabela de atalho.

pDefaultFrame
[in] Um ponteiro para a janela de quadro padrão.

hAccelNew
[in] Um identificador para a nova tabela de atalho.

Valor de Devolução

Um valor diferente de zero, se o método tiver êxito. Caso contrário, 0.

Comentários

Use essa função para substituir a tabela de atalho existente por novas teclas de atalho para vários objetos de janela de quadro. A função recebe um modelo de documento como um parâmetro para obter acesso a todos os objetos de janela de quadro conectados ao modelo de documento fornecido.

Confira também

Gráfico da hierarquia
Classes
Classe CWinAppEx
CWinAppEx::InitKeyboardManager
Personalização de teclado e mouse