TN022: Implementação de comandos padrão

Esta anotação descreve as implementações de comando padrão fornecidas pelo MFC 2.0. Por favor, certifique-se de ler técnicas Nota 21 pela primeira vez desde que descreve os mecanismos usados para implementar muitos dos comandos padrão.

Esta descrição pressupõe o conhecimento do MFC arquiteturas, APIs e prática de programação comum. Documentadas, bem como em situação irregular "implementação somente" APIs são descritos. Não se trata de um lugar para começar a aprender sobre as características de ou como programar no MFC. Por favor, consulte o Guia do programador do Visual C++ para mais informações e para obter detalhes das APIs documentados.

O problema

MFC define muitas identificações de comando padrão no arquivo de cabeçalho AFXRES.H. Framework suporte para esses comandos varia. Noções básicas sobre onde e como as classes do framework manipulam esses comandos vontade não apenas mostrar-lhe como o framework funciona internamente, mas fornecerá informações úteis sobre como personalizar as implementações padrão e esperemos que lhe ensinar algumas técnicas para implementar seus próprios manipuladores de comando.

Conteúdo desta nota técnica

Cada ID de comando é descrita nas duas seções:

A maioria das implementações de comando padrão são prewired no mapa de mensagem de classe base da estrutura. Há algumas implementações de comando que requerem ligação explícita em sua classe derivada. Estes são descritos em "Observação". Se você escolher as opções corretas na AppWizard, esses manipuladores padrão serão conectados para você no aplicativo esqueleto gerado.

Convenção de nomenclatura

Comandos padrão seguem uma Convenção de nomenclatura simple que nós recomendamos que você use se possível. Padrão a maioria dos comandos estão localizados nos locais padrão na barra de menus do aplicativo. O nome simbólico do comando começa com "ID _" seguido do nome do menu pop-up padrão, seguido do nome do item de menu. O nome simbólico é na parte superior do gabinete com quebras de palavra sublinhado. Para comandos que não têm nomes de item de menu padrão, um nome de comando lógico é definido começando com "ID"_ (por exemplo, ID_NEXT_PANE).

Nós usamos o prefixo "ID _" indicam os comandos que são projetados para ser ligado a itens de menu, botões da barra de ferramentas ou outros objetos de interface do usuário de comando. Manipuladores de comando manipulação comandos "ID _" devem usar os mecanismos de ON_COMMAND e ON_UPDATE_COMMAND_UI da arquitetura de comando do MFC.

Recomendamos que você use o prefixo "IDM_" padrão para itens de menu que não seguem a arquitetura de comando e não precisa de código específico de menu para ativar e desativá-los. Naturalmente o número de comandos de menu específico deve ser pequeno, desde que seguindo a arquitetura de comando do MFC não só faz manipuladores de comando mais poderoso (já que eles vão trabalhar com barras de ferramentas) mas torna o código de manipulador de comando reutilizável.

Intervalos de ID

Consulte para obter mais detalhes sobre o uso de intervalos de ID no MFC técnico nota 20.

Comandos padrão MFC caem no intervalo 0xE000 para 0xEFFF. Por favor não conte com os valores específicos destas identificações já que eles estão sujeitos a alterações em versões futuras da biblioteca.

Seu aplicativo deve definir seus comandos no intervalo de 0 x 8000 para 0xDFFF.

IDs de comando padrão

Para cada ID de comando, há uma seqüência de prompt de linha de mensagem padrão que pode ser encontrada nos PROMPTS de arquivo.RC. O ID de Cadeia de caracteres para o prompt do menu deve ser a mesma que para o ID de comando.

Somente atualização manipuladores de comando

Existem vários IDs de comando padrão que são usados como indicadores em barras de status. Estes usam o mesmo comando de atualização interface do usuário mecanismo de manipulação para exibir seu atual estado visual durante o tempo ocioso do aplicativo. Uma vez que eles não podem ser selecionados pelo usuário (ou seja, você não pode forçar um painel de barra de status), então não faz sentido ter um manipulador de ON_COMMAND para estes IDs de comando.

Todos estes três são implementados em CFrameWnd::OnUpdateKeyIndicator, um auxiliar de implementação que usa a identificação de comando para mapear para a chave Virtual adequado. Uma implementação comum habilita ou desabilita (para painéis de status desativados não = nenhum texto) o objeto de CCmdUI dependendo se a tecla Virtual apropriada está bloqueada no momento.

Personalização desse manipulador de comando não é recomendada.

Atualmente não há nenhuma implementação padrão para esses indicadores.

Se você optar por implementar esses indicadores, recomendamos que você use essas identificações de indicador e manter a ordenação dos indicadores na barra de status (isto é, nesta ordem: EXT, CAP, NUM, SCRL, OVR, REC).

Técnico anotações por número |nbsp; &Notas técnicas por categoria

Index