TN022: Implementação de comandos padrão

ObservaçãoObservação

A seguinte nota técnica não foi atualizada desde que foi incluída pela primeira vez na documentação online.Como resultado, alguns procedimentos e tópicos podem estar desatualizado ou incorreto.As informações mais recentes, é recomendável que você procure o tópico de interesse no índice de documentação on-line.

Esta anotação descreve as implementações de comando padrão fornecidas pelo MFC 2.0.Leitura técnico nota 21 primeiro porque ele descreve os mecanismos usados para implementar muitos dos comandos padrão.

Essa descrição pressupõe conhecimento de arquiteturas MFC, APIs e prática de programação comuns.Documentados como não documentada "implementação somente" APIs são descritas.Isso não é um lugar para começar a aprender sobre os recursos do ou como programar no MFC.Consulte Visual C++ para obter mais informações e para obter detalhes das APIs documentadas.

O problema

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

Conteúdo desta nota técnica

Cada ID de comando é descrito em duas seções:

  • Título: o nome simbólico de ID de comando (por exemplo, ID_FILE_SAVE) seguido pela finalidade do comando (por exemplo, "salva o documento atual"), separado por dois-pontos.

  • Um ou mais parágrafos descrevendo quais classes devem implementam o comando e o que faz a implementação padrão

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 exigem fiação explícita em sua classe derivada.Eles são descritos em "Observação".Se você escolher as opções corretas na AppWizard, esses manipuladores padrão serão conectados no aplicativo de esqueleto gerado para você.

Convenção de nomenclatura

Comandos padrão seguem uma convenção de nomenclatura simple, recomendamos que você use se possível.Comandos mais padrão estão localizados nos locais padrão na barra de menus do aplicativo.O nome simbólico do comando começa com "ID _" seguido pelo nome do menu pop-up padrão, seguido do nome do item de menu.O nome simbólico é em letras maiúsculas 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).

Usamos o prefixo "ID _" para indicar os comandos que são projetados para ser vinculado a itens de menu, botões da barra de ferramentas ou outros objetos de interface do usuário de comando.Manipuladores de comandos tratamento comandos "ID _" devem usar o ON_COMMAND e ON_UPDATE_COMMAND_UI mecanismos do MFC comando arquitetura.

Recomendamos que você use o prefixo "IDM_" padrão para itens de menu que não siga a arquitetura de comando e precisam de código específico do menu para ativar e desativá-los.Claro que o número de comandos de menu específico deve ser pequeno pois seguindo a arquitetura de comando do MFC não só torna os manipuladores de comandos mais eficiente (já que eles funcionarão com barras de ferramentas), mas torna o código de manipulador de comando reutilizável.

Intervalos de ID

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

Comandos padrão do MFC estão no intervalo 0xE000 para 0xEFFF.Por favor não dependem valores específicos dessas identificações pois estão sujeitas a alterações em versões futuras da biblioteca.

Seu aplicativo deve definir seus comandos no intervalo 0x8000 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.A identificação de cadeia de caracteres de prompt do menu deve ser o mesmo para a identificação de comando.

  • ID_FILE_NEW Cria um documento novo/vazio.

    ObservaçãoObservação

    Você deve se conectar para seu CWinApp-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    CWinApp::OnFileNewimplementa este comando de forma diferente dependendo do número de modelos de documento do aplicativo.Se houver apenas um CDocTemplate, CWinApp::OnFileNew irá criar um novo documento do tipo, bem como a classe de quadro e exibição correta.

    Se houver mais de um CDocTemplate, CWinApp::OnFileNew solicitará que o usuário com uma caixa de diálogo (AFX_IDD_NEWTYPEDLG) permitindo selecionar o tipo de documento para usar.A CDocTemplate é usado para criar o documento.

    Uma personalização comum de ID_FILE_NEW é fornecer uma diferente e mais opções gráficas dos tipos de documento.Nesse caso você pode implementar seu próprio CMyApp::OnFileNew e coloque-o em seu mapa da mensagem em vez de CWinApp::OnFileNew.Não é necessário chamar a implementação da classe base.

    Outra personalização comuns de ID_FILE_NEW é fornecer um comando separado para criação de um documento de cada tipo.Nesse caso, você deve definir novo comando identificações, por exemplo, ID_FILE_NEW_CHART e ID_FILE_NEW_SHEET.

  • ID_FILE_OPEN Abre um documento existente.

    ObservaçãoObservação

    Você deve se conectar para seu CWinApp-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    CWinApp::OnFileOpentem uma implementação muito simple chamada CWinApp::DoPromptFileName seguido de CWinApp::OpenDocumentFile com o nome de arquivo ou caminho do arquivo para abrir.O CWinApp rotina de implementação DoPromptFileName traz a caixa de diálogo Abrir padrão e a preenche com as extensões de arquivo obtidas os modelos de documento atual.

    Uma personalização comum de ID_FILE_OPEN é personalizar a caixa de diálogo FileOpen ou adicionar filtros de arquivo adicional.A maneira recomendada para personalizar esta é substituir a implementação padrão com seu próprio diálogo FileOpen e chamada CWinApp::OpenDocumentFile com o nome de arquivo ou caminho do documento.Não é necessário para chamar a classe base.

  • ID_FILE_CLOSE Fecha o documento aberto no momento.

    CDocument::OnFileClose chamadas CDocument::SaveModified para solicitar ao usuário para salvar o documento se ele foi modificado e, em seguida, chama OnCloseDocument.Toda a lógica de fechamento, incluindo destruir o documento, é feita a OnCloseDocument rotina.

    ObservaçãoObservação

    ID_FILE_CLOSE atua de forma diferente de um WM_CLOSE mensagem ou um SC_CLOSE comando sistema enviado para a janela do quadro de documentos.Fechar uma janela irá fechar o documento somente se for a última janela de quadro mostrando o documento.Fechando o documento com ID_FILE_CLOSE não apenas fechar o documento, mas irá fechar todas as janelas de quadro mostrando o documento.

  • ID_FILE_SAVE Salva o documento atual.

    A implementação usa uma rotina auxiliar CDocument::DoSave que é usado para ambos OnFileSave e OnFileSaveAs.Se você salvar um documento não tiver sido salvo antes (ou seja, ele não tem um nome de caminho, como no caso de FileNew) ou que foram lidos a partir de um documento como somente leitura, o OnFileSave lógica atuará como o ID_FILE_SAVE_AS comando e pedir ao usuário que forneça um novo nome de arquivo.O processo real de abrir o arquivo e fazer a gravação é feito através da função virtual OnSaveDocument.

    Há dois motivos comuns para personalizar ID_FILE_SAVE.Para documentos que não salvar, basta remover o ID_FILE_SAVE itens de menu e botões da barra de ferramentas da interface do usuário.Também Certifique-se de que nunca sujo seu documento (ou seja, nunca chama CDocument::SetModifiedFlag) e a estrutura nunca fará com que o documento ser salvo.Para documentos que salvar em algum lugar diferente de um arquivo de disco, defina um novo comando para que a operação.

    No caso de um COleServerDoc, ID_FILE_SAVE é usado para salvar arquivo (para documentos normais) e atualização de arquivo (para documentos incorporados).

    Se os dados do documento são armazenados em arquivos de disco individual, mas não quiser usar o padrão CDocument serializar a implementação, você deve substituir CDocument::OnSaveDocument em vez de OnFileSave.

  • ID_FILE_SAVE_AS Salva o documento atual em um nome de arquivo diferente.

    O CDocument::OnFileSaveAs implementação usa a mesma CDocument::DoSave rotina auxiliar como OnFileSave.O OnFileSaveAs comando é tratado como ID_FILE_SAVE se nenhum nome de arquivo antes de salvar os documentos.COleServerDoc::OnFileSaveAs implementa a lógica para salvar um arquivo de dados do documento normal ou salvar um documento do servidor que representa um objeto OLE incorporada em outro aplicativo como um arquivo separado.

    Se você personalizar a lógica de ID_FILE_SAVE, você provavelmente desejará personalizar ID_FILE_SAVE_AS de maneira semelhante ou a operação de "Salvar como" pode não se aplicar ao documento.Você pode remover o item de menu da barra de menus se não for necessário.

  • ID_FILE_SAVE_COPY_AS Salva um documento de cópia atual sob um novo nome.

    O COleServerDoc::OnFileSaveCopyAs implementação é muito semelhante a CDocument::OnFileSaveAs, exceto que o objeto de documento não está "conectado" arquivo subjacente após salvar.Ou seja, se o documento na memória foi "modificado" antes de salvar, ele é ainda "modificado".Além disso, este comando não tem efeito no nome de caminho ou título armazenado no documento.

  • ID_FILE_UPDATE Notifica o contêiner para salvar um documento incorporado.

    O COleServerDoc::OnUpdateDocument implementação simplesmente notifiies o recipiente a incorporação deve ser salvo.O contêiner chama o OLE APIs adequadas para salvar o objeto incorporado.

  • ID_FILE_PAGE_SETUP Invoca uma caixa de diálogo de configuração/layout de página de aplicativo específica.

    Atualmente, há um padrão para esta caixa de diálogo e a estrutura não tem nenhuma implementação padrão deste comando.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_FILE_PRINT_SETUP Invoca a caixa de diálogo Configurar impressão padrão.

    ObservaçãoObservação

    Você deve se conectar para seu CWinApp-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    Este comando invoca a caixa de diálogo de configuração de impressão padrão que permite ao usuário personalizar a impressora e imprimir pelo menos configurações para este documento ou no máximo todos os documentos nesse aplicativo.Você deve usar o painel de controle para alterar as configurações de impressora padrão para todo o sistema.

    CWinApp::OnFilePrintSetuptem uma implementação muito simple criar um CPrintDialog objeto e chamada de CWinApp::DoPrintDialog função de implementação.Isso define a configuração da impressora padrão da aplicativo.

    A necessidade comum para personalizar este comando é permitir configurações de impressora por documento, que devem ser armazenadas com o documento quando salvas.Para fazer isso, você deve adicionar um manipulador de mapa da mensagem no seu CDocument classe cria uma CPrintDialog de objeto, inicializa com os atributos de impressora apropriado (geralmente hDevMode e hDevNames são), chamar o CPrintDialog::DoModal, e salvar as configurações de impressora alterada.Uma implementação robusta, você deve examinar a implementação de CWinApp::DoPrintDialog para detectar erros e CWinApp::UpdatePrinterSelection para lidar com padrões adequados e controle de alterações de todo o sistema de impressora.

  • Impressão De id_file_print padrão do documento atual

    ObservaçãoObservação

    Você deve se conectar para seu CView-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    Esse comando imprime o documento atual ou mais corretamente, inicia o processo de impressão, que envolve a invocar a caixa de diálogo de impressão padrão e executar o mecanismo de impressão.

    CView::OnFilePrint implementa esse comando e o loop de impressão principal.Chama o virtual CView::OnPreparePrinting ao prompt do usuário com caixa de diálogo Imprimir.Prepara saída DC para ir para a impressora, então ele traz a caixa de diálogo de progresso impressão (AFX_IDD_PRINTDLG) e envia o StartDoc escape para a impressora.CView::OnFilePrint também contém o loop de impressão orientado a página principal.Para cada página, ele chama o virtual CView::OnPrepareDC seguido de um StartPage escape e chamando o virtual CView::OnPrint para essa página.Quando concluir, o virtual CView::OnEndPrinting é chamado e a impressão caixa de diálogo de progresso é fechada.

    Arquitetura de impressão MFC foi projetada para conectar-se de muitas maneiras diferentes para visualização de impressão e imprimir.Você normalmente encontrará vários CView substituíveis funções adequadas para as tarefas de impressão orientado a página.Apenas no caso de um aplicativo que usa a impressora para a página não orientado a saída, você deve localizar a necessidade de substituir o ID_FILE_PRINT implementação.

  • ID_FILE_PRINT_PREVIEW Entre no modo de visualização de impressão para o documento atual.

    ObservaçãoObservação

    Você deve se conectar para seu CView-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    CView::OnFilePrintPreview inicia o modo de visualização de impressão chamando a função auxiliar documentadas CView::DoPrintPreview.CView::DoPrintPreview é o mecanismo principal para o loop de visualização de impressão, como OnFilePrint é o mecanismo principal para o loop de impressão.

    A operação de visualização de impressão pode ser personalizada de várias maneiras, passando parâmetros diferentes para DoPrintPreview.Consulte técnico nota 30, que aborda alguns dos detalhes de visualização de impressão e como personalizá-lo.

  • ID_FILE_MRU_FILE1... FILE16 um intervalo de IDs de comando para o arquivo MRU list.

    CWinApp::OnUpdateRecentFileMenu é um manipulador de interface do usuário de comando update é um dos usos mais avançados do ON_UPDATE_COMMAND_UI mecanismo.Em seu recurso de menu, você só precisa definir um item único de menu com ID ID_FILE_MRU_FILE1.Esse item de menu permanece desativado inicialmente.

    Como o MRU lista cresce, menu mais itens são adicionados à lista.O padrão CWinApp padrões de implementação para o limite padrão de quatro arquivos usados mais recentemente.Você pode alterar o padrão chamando CWinApp::LoadStdProfileSettings com um valor maior ou menor.A lista MRU é armazenada o aplicativo.Arquivo INI.A lista é carregada em seu aplicativo InitInstance funcionar se você chamar LoadStdProfileSettingse é salvo quando sai de seu aplicativo.O manipulador de interface do usuário do MRU atualização comando também irá converter caminhos absolutos para caminhos relativos para exibição no menu arquivo.

    CWinApp::OnOpenRecentFile é o ON_COMMAND manipulador executa o comando real.Ele simplesmente obtém o nome do arquivo da lista MRU e chamadas CWinApp::OpenDocumentFile, que faz todo o trabalho de abrir o arquivo e atualizar a lista MRU.

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

  • ID_EDIT_CLEAR Limpa a seleção atual

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    CEditViewFornece uma implementação de usar esse comando CEdit::Clear.O comando é desabilitado se não houver nenhuma seleção atual.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_EDIT_CLEAR_ALL Limpa todo o documento.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.Consulte o exemplo de Tutorial de MFC RABISCO para um exemplo de implementação.

  • ID_EDIT_COPY Copia a seleção atual para a área de transferência.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    CEditViewFornece uma implementação deste comando, copia o texto selecionado para a área de transferência como CF_TEXT usando CEdit::Copy.O comando é desabilitado se não houver nenhuma seleção atual.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_EDIT_CUT Recorta a seleção atual na área de transferência.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    CEditViewFornece uma implementação deste comando, recorta o texto selecionado para a área de transferência como CF_TEXT usando CEdit::Cut.O comando é desabilitado se não houver nenhuma seleção atual.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_EDIT_FIND Começa a operação de localização, traz a caixa de diálogo Localizar sem janela restrita.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    CEditViewFornece uma implementação deste comando, que chama a função de auxiliar de implementação OnEditFindReplace de usar e armazenar as configurações anteriores de localizar/substituir em variáveis de implementação privada.O CFindReplaceDialog classe é usada para gerenciar a caixa de diálogo sem janela restrita para avisar o usuário.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_EDIT_PASTE Insere o conteúdo atual da área de transferência.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    CEditViewFornece uma implementação deste comando, copia os dados de área de transferência atuais, substituindo o texto selecionado usando CEdit::Paste.O comando é desabilitado se não houver nenhum CF_TEXT na área de transferência.

    COleClientDoc fornece apenas um manipulador de interface do usuário de comando de atualização para este comando.Se a área de transferência não contém um item OLE incorporável/objeto, o comando será desativado.Você é responsável por escrever um manipulador para o comando fazer a colagem real.Se seu aplicativo OLE pode também colar outros formatos, você deve fornecer seu próprio manipulador UI do comando update em seu documento ou modo de exibição (isto é, em algum lugar antes de COleClientDoc no comando roteamento de destino).

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

    Para substituir a implementação de OLE padrão, use COleClientItem::CanPaste.

  • ID_EDIT_PASTE_LINK Insere um link do conteúdo atual da área de transferência.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    COleDocumentfornece apenas um manipulador de interface do usuário de comando de atualização para este comando.Se a área de transferência não contém linkable OLE/objeto de item, o comando será desativado.Você é responsável por escrever um manipulador para o comando fazer a colagem real.Se seu aplicativo OLE pode também colar outros formatos, você deve fornecer seu próprio manipulador UI do comando update em seu documento ou modo de exibição (isto é, em algum lugar antes de COleDocument no comando roteamento de destino).

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

    Para substituir a implementação de OLE padrão, use COleClientItem::CanPasteLink.

  • ID_EDIT_PASTE_SPECIAL Insere o conteúdo atual da área de transferência com opções.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.MFC não fornece esta caixa de diálogo.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_EDIT_REPEAT Repete a última operação.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    CEditViewFornece uma implementação deste comando para repetir a última operação de localizar.As variáveis de implementação privada para a última localização são usadas.O comando é desabilitado se uma localização não pode ser tentada.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_EDIT_REPLACE Começa a operação de substituição, traz a caixa de diálogo Substituir sem janela restrita.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    CEditViewFornece uma implementação deste comando, que chama a função de auxiliar de implementação OnEditFindReplace de usar e armazenar as configurações anteriores de localizar/substituir em variáveis de implementação privada.O CFindReplaceDialog classe é usada para gerenciar a caixa de diálogo sem janela restrita que solicita ao usuário.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_EDIT_SELECT_ALL Seleciona o documento inteiro.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    CEditViewFornece uma implementação deste comando, seleciona todo o texto do documento.O comando é desabilitado se não houver nenhum texto para selecionar.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_EDIT_UNDO Desfaz a última operação.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    CEditViewFornece uma implementação de comando, usando CEdit::Undo.O comando é desabilitado se CEdit::CanUndo retorna FALSE.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_EDIT_REDO Refaz a última operação.

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_WINDOW_NEW Abre outra janela do documento ativo.

    CMDIFrameWnd::OnWindowNew implementa esse poderoso recurso usando o modelo de documento do documento atual para criar outro quadro que contém outro modo de exibição do documento atual.

    Como a maioria dos vários documento interface (MDI) comandos do menu janela, o comando é desabilitado se não houver nenhuma janela de filho MDI ativo.

    Personalização desse manipulador de comando não é recomendada.Se você desejar fornecer um comando que cria exibições adicionais ou janelas de quadro, provavelmente será melhor criação seu próprio comando.Você pode clonar o código de CMDIFrameWnd::OnWindowNew e modifique-o para classes específicas de quadro e modo de sua preferência.

  • ID_WINDOW_ARRANGE Organiza os ícones na parte inferior de uma janela MDI.

    CMDIFrameWndimplementa este comando MDI padrão em uma função auxiliar de implementação OnMDIWindowCmd.Esse auxiliar mapeia os IDs de comando para mensagens de janelas MDI e portanto pode compartilhar muito código.

    Como a maioria dos comandos de menu de janela MDI, o comando é desabilitado se não houver nenhuma janela de filho MDI ativo.

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

  • ID_WINDOW_CASCADE o em cascata windows para que elas se sobreponham.

    CMDIFrameWndimplementa este comando MDI padrão em uma função auxiliar de implementação OnMDIWindowCmd.Esse auxiliar mapeia os IDs de comando para mensagens de janelas MDI e portanto pode compartilhar muito código.

    Como a maioria dos comandos de menu de janela MDI, o comando é desabilitado se não houver nenhuma janela de filho MDI ativo.

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

  • ID_WINDOW_TILE_HORZ Posiciona lado lado windows horizontalmente.

    Este comando é implementado em CMDIFrameWnd como ID_WINDOW_CASCADE, exceto uma mensagem diferente de janelas MDI é usada para a operação.

    Você deve escolher a orientação da imagem padrão para seu aplicativo.Você pode fazer isso alterando o ID do item de menu "Lado a lado" da janela para um ID_WINDOW_TILE_HORZ ou ID_WINDOW_TILE_VERT.

  • ID_WINDOW_TILE_VERT Posiciona lado lado windows verticalmente.

    Este comando é implementado em CMDIFrameWnd como ID_WINDOW_CASCADE, exceto uma mensagem diferente de janelas MDI é usada para a operação.

    Você deve escolher a orientação da imagem padrão para seu aplicativo.Você pode fazer isso alterando o ID do item de menu "Lado a lado" da janela para um ID_WINDOW_TILE_HORZ ou ID_WINDOW_TILE_VERT.

  • ID_WINDOW_SPLIT Interface de teclado ao divisor.

    CViewlida com esse comando para o CSplitterWnd implementação.Se a exibição é parte de uma janela separadora, este comando será delegado para a função de implementação CSplitterWnd::DoKeyboardSplit.Isso colocará o divisor em um modo permitirá que os usuários de teclado dividir ou são congelados uma janela separadora.

    Este comando está desabilitado se o modo de exibição não é um divisor.

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

  • ID_APP_ABOUT Invoca a caixa de diálogo sobre.

    Não há nenhuma implementação padrão para a caixa sobre do aplicativo.O aplicativo criado AppWizard padrão será criar uma classe de diálogo personalizada para seu aplicativo e usá-la como a caixa sobre.AppWizard também irá escrever o manipulador de comando trivial que lida com esse comando e invoca a caixa de diálogo.

    Quase sempre você irá implementar este comando.

  • ID_APP_EXIT Sai do aplicativo.

    CWinApp::OnAppExit manipula esse comando enviando um WM_CLOSE mensagem para a janela principal do aplicativo.O padrão de desligamento do aplicativo (solicitar arquivos dirty e assim por diante) é tratado pelo CFrameWnd implementação.

    Personalização desse manipulador de comando não é recomendada.Substituindo CWinApp::SaveAllModified ou CFrameWnd lógica de fechamento é recomendado.

    Se você optar por implementar esse comando, recomendamos que você use essa identificação de comando.

  • ID_HELP_INDEX Listas de tópicos da Ajuda do.Arquivo HLP.

    ObservaçãoObservação

    Você deve se conectar para seu CWinApp-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    CWinApp::OnHelpIndexlida com esse comando chamando muito CWinApp::WinHelp.

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

  • ID_HELP_USING Exibe a Ajuda sobre como usar a Ajuda.

    ObservaçãoObservação

    Você deve se conectar para seu CWinApp-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    CWinApp::OnHelpUsinglida com esse comando chamando muito CWinApp::WinHelp.

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

  • ID_CONTEXT_HELP Modo de ajuda Enters SHIFT-F1.

    ObservaçãoObservação

    Você deve se conectar para seu CWinApp-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    CWinApp::OnContextHelplida com esse comando definindo o cursor de modo de Ajuda, inserindo um loop modal e esperar que o usuário selecione uma janela para obter ajuda sobre.Consulte técnico Observação 28 para obter mais detalhes sobre a implementação do MFC.

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

  • ID_HELP Oferece ajuda no contexto atual

    ObservaçãoObservação

    Você deve se conectar para seu CWinApp-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    CWinApp::OnHelpmanipula o comando obtendo o contexto de ajuda adequada para o contexto atual do aplicativo.Trata de simples Ajuda F1, ajuda nas caixas de mensagem e assim por diante.Consulte técnico Observação 28 para obter mais detalhes sobre o MFC implementação da Ajuda.

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

  • ID_DEFAULT_HELP Exibe a Ajuda padrão para o contexto

    ObservaçãoObservação

    Você deve se conectar para seu CWinApp-derivado do mapa da mensagem da classe para habilitar esta funcionalidade.

    Este comando geralmente é mapeado para CWinApp::OnHelpIndex.

    Um manipulador de comandos diferentes pode ser fornecido se uma distinção entre ajuda padrão e o índice da Ajuda desejada.

  • ID_NEXT_PANE Vai para o próximo painel

    CViewlida com esse comando para o CSplitterWnd implementação.Se a exibição é parte de uma janela separadora, este comando será delegado para a função de implementação CSplitterWnd::OnNextPaneCmd.Isso moverá o modo de exibição ativo para o próximo painel divisor.

    Este comando está desabilitado se o modo de exibição não é um divisor ou não há nenhum painel próximo para ir para.

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

  • ID_PREV_PANE Vai para o painel anterior

    CViewlida com esse comando para o CSplitterWnd implementação.Se a exibição é parte de uma janela separadora, este comando será delegado para a função de implementação CSplitterWnd::OnNextPaneCmd.Isso moverá o modo de exibição ativo para o painel anterior em que o divisor.

    Este comando está desabilitado se o modo de exibição não é um divisor ou não há nenhum painel anterior para ir para.

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

  • ID_OLE_INSERT_NEW Insere um novo objeto OLE

    Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para seu CView-derivado classe para inserir um novo item OLE/objeto na seleção atual.

    Todos os aplicativos de cliente OLE devem implementar este comando.AppWizard, com a opção OLE, irá criar uma implementação esqueleto de OnInsertObject na sua classe de modo que você terá para concluir.

    Consulte o MFC OLE exemplo OCLIENT exemplo para uma implementação completa deste comando.

  • ID_OLE_EDIT_LINKS Edita vínculos OLE

    COleDocumentmanipula o comando usando a implementação fornecido MFC da caixa de diálogo de vínculos OLE padrão.A implementação desta caixa de diálogo é acessada através de COleLinksDialog classe.Se o documento atual não contiver quaisquer links, o comando está desabilitado.

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

  • ID_OLE_VERB_FIRST...ÚLTIMO Um intervalo de ID de verbos OLE

    COleDocumentusa esse intervalo de ID de comando para verbos do OLE item/objeto selecionado.Isso deve ser um intervalo como um determinado tipo de objeto do item OLE suportam a zero ou mais verbos personalizados.No menu do aplicativo, você deve ter um item de menu com a identificação do ID_OLE_VERB_FIRST.Quando o programa é executado, o menu será atualizado com a descrição do verbo menu apropriado (ou menu pop-up com muitos verbos).O gerenciamento do menu OLE é tratado pelo AfxOleSetEditMenu, feito no manipulador UI de comando de atualização para este comando.

    Há sem manipuladores de comandos explícitos para lidar com cada identificação de comando neste intervalo.COleDocument::OnCmdMsg é substituído para interceptar todas as identificações de comando nesse intervalo, transformá-los em números de base zero verbo e iniciar o servidor do verbo (usando COleClientItem::DoVerb).

    Personalização ou outro uso desse intervalo de ID de comando não é recomendado.

  • ID_VIEW_TOOLBAR Ativa a barra de ferramentas e desativa

    CFrameWndlida com esse comando e o manipulador de comando de atualização da interface do usuário para alternar o estado visível da barra de ferramentas.A barra de ferramentas deve ser uma janela filho do quadro com a identificação de janela filho de AFX_IDW_TOOLBAR.O manipulador de comandos realmente alterna a visibilidade da janela de barra de ferramentas.CFrameWnd::RecalcLayouté usado para redesenhar a janela do quadro com a barra de ferramentas em seu novo estado.O manipulador de interface do usuário do comando update verifica o item de menu quando a barra de ferramentas está visível.

    Personalização desse manipulador de comando não é recomendada.Se você deseja adicionar barras de ferramentas, você desejará clonar e modificar o manipulador de comando e o manipulador de comando update interface do usuário para este comando.

  • ID_VIEW_STATUS_BAR Ativa a barra de status e desativa

    Este comando é implementado em CFrameWnd como ID_VIEW_TOOLBAR, exceto um identificador de janela diferente filho (AFX_IDW_STATUS_BAR) é usado.

Manipuladores de comandos somente atualização

Várias IDs de comando padrão são usados como indicadores em barras de status.Esses usarem o mesmo mecanismo de manipulação de interface de usuário do comando update para exibir o estado atual de visual durante o tempo ocioso do aplicativo.Desde que não pode ser selecionados pelo usuário (isto é, você não pode empurrar um painel de barra de status), e não faz sentido ter um ON_COMMAND manipulador para esses IDs de comando.

  • ID_INDICATOR_CAPS : indicador de bloqueio do CAP.

  • ID_INDICATOR_NUM : indicador do NUM lock.

  • ID_INDICATOR_SCRL : indicador de bloqueio da tecla Scroll Lock.

  • ID_INDICATOR_KANA : indicador de bloqueio KANA (aplicável apenas aos sistemas em japonês).

As três seguintes são implementadas no CFrameWnd::OnUpdateKeyIndicator, um auxiliar de implementação que usa a identificação de comando para mapear a tecla Virtual apropriada.Uma implementação comum ativa ou desativa (para painéis de status desativados = sem texto) a CCmdUI dependendo a tecla Virtual apropriada está bloqueada no momento.

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

  • ID_INDICATOR_EXT: EXTselecionar indicador finalizada.

  • ID_INDICATOR_OVR: ETerstrike indicador.

  • ID_INDICATOR_REC: RECindicador ording.

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, tecla Scroll Lock, OVR, REC).

Consulte também

Outros recursos

Notas técnicas por número

Notas técnicas por categoria