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