TN022: Implementação de comandos padrão
Observação: |
---|
A seguinte nota técnica não foi atualizada desde que foi incluída pela primeira vez na documentação online.sistema autônomo resultado, alguns procedimentos e tópicos podem estar desatualizado ou incorreto.Para obter informações mais recentes, é recomendável que você procurar o tópico de interesse no índice de documentação online. |
Esta nota descreve as implementações de comando padrão fornecidas pelo MFC 2.0.Ler Observação técnica 21 primeiro porque ele descreve os mecanismos usados para implementar a muitos dos comandos padrão.
Essa descrição pressupõe conhecimento de arquiteturas MFC, APIs e prática de programação comuns.Documentadas, bem sistema autônomo 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 Geral e para obter detalhes de APIs documentadas.
O problema
MFC define muitas identificações de comando padrão no arquivo de cabeçalho AFXRES.H.Estrutura de suporte para esses comandos varia.Noções básicas sobre onde e como as classes do framework lidam com esses comandos não só mostrará como a estrutura funciona internamente, mas fornecerá informações úteis sobre como personalizar as implementações padrão e ensinar a você algumas técnicas para implementar seus próprios manipuladores de comandos.
Sumário desta nota técnica
Cada ID de comando é descrito em duas seções:
Título: o nome simbólico da ID do comando (por exemplo, ID_FILE_SAVE) seguido o propósito do comando (por exemplo, "salva o documento corrente") separado por dois-pontos.
Um ou mais parágrafos que descreve as classes que 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 MAP da mensagem classe base da estrutura.Há algumas implementações de comando que necessitam de 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 nomeação
Comandos padrão seguem uma convenção de nomeclatura simples que nós recomendamos que você use se possível.Comandos mais padrão estão localizados em locais padrão da BAR 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 é 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 comandos que são projetados para ser limite a itens de menu, botões da barra de ferramentas ou outros objetos de interface do usuário do comando.Manipuladores de comandos "ID_" comandos de tratamento devem usar oON_COMMAND e ON_UPDATE_COMMAND_UI mecanismos da arquitetura de comando do MFC.
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íficas do menu para ativar e desativá-los.Claro número de comandos de menu específico deve ser pequeno desde seguindo a arquitetura de comando do MFC não só torna manipuladores de comandos mais eficiente (já que eles funcionarão com barras de ferramentas), mas torna o código do manipulador de comando reutilizável.
Intervalos de ID
Consulte o Observação técnica 20intervalos de para obter mais detalhes sobre o uso de ID no MFC.
Comandos padrão do MFC se enquadram no intervalo 0xE000 para 0xEFFF.Por favor, não confie nos 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 0 x 8000 para 0xDFFF.
IDs de comando padrão
Para cada ID de comando, há uma seqüência de aviso de linha de mensagem padrão que pode ser encontrada no arquivo PROMPTS.RC.A ID de seqüência de caracteres de aviso do menu deve ser o mesmo para a ID de comando.
ID_FILE_NEW Cria um documento novo/vazio.
Observação: Você deve conectar-se esta opção para seu CWinApp-derivada de MAP de mensagens da classe para habilitar essa funcionalidade.
CWinApp::OnFileNew implementa este comando de forma diferente dependendo do número de modelos de documentos no aplicativo. Se houver apenas um CDocTemplate, CWinApp::OnFileNew irá criar um novo documento de tipo, bem sistema autônomo a classe de quadro e o modo de exibição apropriada.
Se houver mais de um CDocTemplate, CWinApp::OnFileNew será aviso o usuário com uma caixa de diálogo (AFX_IDD_NEWTYPEDLG) permitindo que eles selecionar o tipo de documento para usar.O selecionadoCDocTemplate é usado para criar o documento.
Uma personalização comuns de ID_FILE_NEW é fornecer um diferente e mais opções de gráfica de tipos de documento. Nesse caso, você pode implementar seu próprio CMyApp::OnFileNew e lugar na sua mensagem mapear em vez de CWinApp::OnFileNew. Não é necessário para telefonar a implementação da classe base.
Outra personalização comuns de ID_FILE_NEW é fornecer um comando separado para a 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ção: Você deve conectar-se esta opção para seu CWinApp-derivada de MAP de mensagens da classe para habilitar essa funcionalidade.
CWinApp::OnFileOpen tem uma implementação muito simples de chamada CWinApp::DoPromptFileName seguido por CWinApp::OpenDocumentFile com o nome do arquivo para em em aberto o arquivo ou caminho. The CWinApp rotina de implementação DoPromptFileName exibe a caixa de diálogo Abrir padrão e a preenche com as extensões de arquivo obtidas a partir de modelos de documento corrente.
Uma personalização comuns de ID_FILE_OPEN é personalizar a caixa de diálogo Abrir ou adicionar filtros de arquivo adicional. A maneira recomendada para personalizar isso é substituir a implementação padrão pela sua própria caixa de diálogo FileOpen e telefonar CWinApp::OpenDocumentFile com nome de arquivo ou caminho do documento. Não é necessário para chamar a classe base.
ID_FILE_CLOSE Fecha o documento em aberto no momento.
CDocument::OnFileClose calls 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 o OnCloseDocument rotina.
Observação: ID_FILE_CLOSE atua diferente de um WM_CLOSE mensagem ou um SC_CLOSE sistema comando enviado para a janela do quadro de documentos.Fechar uma janela será fechado o documento somente se for a última janela do quadro mostrando o documento.Fechando o documento com ID_FILE_CLOSE não apenas fechar o documento, mas será encerrado em todas as janelas de quadro mostrando o documento.
ID_FILE_SAVE Salva o documento corrente.
A implementação usa uma rotina auxiliar CDocument::DoSave que é usado para ambos os OnFileSave and OnFileSaveAs.Se você salvar um documento que não tenha sido salvar d antes de (ou seja, ele não tem um nome de caminho, sistema autônomo no caso de FileNew) ou que foi lido a partir de um documento somente leitura, a OnFile salvar lógica atuará sistema autônomo a ID_FILE_salvar_AS de comando e peça que o usuário forneça um novo nome de arquivo.O processo real de abrir o arquivo e fazer a gravação é concluído por meio da função virtual OnSaveDocument.
Há duas razões comuns para personalizar ID_FILE_SAVE.Para documentos que não salvam, basta remover o ID_FILE_SAVE itens de menu e botões da barra de ferramentas da interface de usuário.Verifique também se que você nunca dirty seu documento (ou seja, nunca telefonar CDocument::SetModifiedFlag) e a estrutura nunca fará com que o documento ser salvo. Para documentos que salvar lugar diferente de um arquivo de disco, defina um novo comando para essa operação.
No caso de um COleServerDoc, ID_FILE_SAVE é usado salvar de arquivo (para normais documentos) e atualização do arquivo (para documentos incorporados).
Se seu documento, os dados são armazenados em arquivos de disco individual, mas você não quiser usar o padrão de CDocument serializar implementação, você deve substituir CDocument::OnSaveDocument em vez de OnFileSave.
ID_FILE_SAVE_AS Salva o documento corrente com um nome de arquivo diferente.
The CDocument::OnFileSaveAs implementação usa a mesma CDocument::DoSave rotina auxiliar de sistema autônomo OnFileSave.The OnFileSaveAs comando é tratado sistema autônomo ID_FILE_SAVE se nenhum nome de arquivo antes de salvar sistema autônomo documentos.COleServerDoc::OnFileSaveAs implementa a lógica para salvar um arquivo de dados normal do documento ou para salvar um documento do servidor que representa um objeto OLE incorporado em Outros aplicativo sistema autônomo 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 sistema autônomo" podem não se aplicar ao seu documento.Você pode remover o item de menu na BAR de menus se não for necessário.
ID_FILE_SAVE_COPY_AS Salva um documento de cópia corrente com um novo nome.
The COleServerDoc::OnFileSaveCopyAs é muito semelhante a implementaçãoCDocument::OnFileSaveAs, exceto que o objeto de documento não é "conectado" no arquivo subjacente após o salvar.Ou seja, se o documento na memória for "modificado" antes de salvar, ele é ainda "modificado".Além disso, este comando não tem efeito no nome do caminho ou título armazenada no documento.
ID_FILE_UPDATE Notifica o contêiner para salvar um documento incorporado.
The COleServerDoc::OnUpdateDocument implementação simplesmente notifiies o contêiner a incorporação deve ser salvo. O contêiner chama apropriado OLE APIs para salvar o objeto incorporado.
ID_FILE_PAGE_SETUP Invokes uma caixa de diálogo de instalação/layout página específica do aplicativo.
No momento não 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 ID de comando.
ID_FILE_PRINT_SETUP Invocar a caixa de diálogo Configuração da impressão padrão.
Observação: Você deve conectar-se esta opção para seu CWinApp-derivada de MAP de mensagens da classe para habilitar essa funcionalidade.
Este comando invoca a caixa de diálogo Configuração de impressão padrão que permite ao usuário personalizar a impressora e imprimir configurações para pelo menos no máximo todos os documentos neste aplicativo ou documento.Você deve usar o painel de controle para alterar as configurações de impressora padrão para todo o sistema.
CWinApp::OnFilePrintSetup tem uma implementação muito simples criar um CPrintDialog objeto e a chamada a CWinApp::DoPrintDialog implementação função.Isso define a configuração de impressora do aplicativo padrão.
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 MAP da mensagem no seu CDocument classe que cria um CPrintDialog objeto, inicializa com a impressora apropriada (geralmente atributos hDevMode and hDevNames), telefonar the CPrintDialog::DoModal, e salvar as configurações de impressora alterada.Uma implementação eficiente, você deve examinar a implementação de CWinApp::DoPrintDialog para detectar erros e CWinApp::UpdatePrinterSelection para lidar com padrões sensato e monitoramento de alterações em todo o sistema de impressora.
ID_FILE_PRINT Impressão padrão do documento corrente
Observação: Você deve conectar-se esta opção para seu CView-derivada de MAP de mensagens da classe para habilitar essa funcionalidade.
Esse comando imprime o documento corrente ou mais corretamente, inicia o processo de impressão, que envolve 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.Ele chama o virtual CView::OnPreparePrinting para solicitar que o do usuário com a caixa de diálogo de impressão. Em seguida, ele prepara a saída de DC para ir para a impressora, exibe a caixa de diálogo Andamento impressão (AFX_IDD_PRINTDLG) e envia o StartDoc sai da impressora. CView::OnFilePrint também contém o loop impressão orientado a página principal.Para cada página, ele chama o virtual CView::OnPrepareDC seguido de um StartPage escape e a chamada 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.
A arquitetura de impressão MFC foi projetada para conectar-se de muitas maneiras diferentes para visualização de impressão e imprimir.Normalmente, você encontrará a 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 não paginada orientados a saída, deve encontrar a necessidade de substituir o ID_FILE_PRINT implementação.
ID_FILE_PRINT_PREVIEW Inserir modo de visualização de impressão para o documento corrente.
Observação: Você deve conectar-se esta opção para seu CView-derivada de MAP de mensagens da classe para habilitar essa funcionalidade.
CView::OnFilePrintPreview inicia o modo de visualização de impressão, chamando a função de auxiliar documentadas CView::DoPrintPreview.CView::DoPrintPreview é o mecanismo principal para o loop de visualização de impressão, sistema autônomo OnFilePrint é o mecanismo principal para o loop de impressão.
A operação de visualização de impressão pode ser personalizada de diversas maneiras, passando parâmetros diferentes para DoPrintPreview.Consulte o Observação técnica 30, que discute 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 comandos de atualização que é um dos usos mais avançados do ON_UPDATE_COMMAND_UI mecanismo. Seu recurso de menu, você só precisa definir um item único de menu com ID ID_FILE_MRU_FILE1.Esse item de menu permanece desabilitado inicialmente.
sistema autônomo o MRU lista cresce, menu mais itens são adicionados à lista.O padrão CWinApp os padrões de implementação para o limite padrão da quatro maioria arquivos usados recentemente. Você pode alterar o padrão chamando CWinApp::LoadStdProfileSettings com um valor maior ou menor. A lista MRU é armazenada no arquivo de inicialização do aplicativo.A lista é carregada em InitInstance Se você chamar de função LoadStdProfileSettingse é salvo quando sai de seu aplicativo. O manipulador de interface do usuário de comandos de atualização MRU também irá converter caminhos absolutos para caminhos relativos para exibição no menu Arquivo.
CWinApp::OnOpenRecentFile is the ON_COMMAND manipulador que executa o comando real. Ele simplesmente obtém o nome de arquivo na lista MRU e chama CWinApp::OpenDocumentFile, que faz todo o trabalho de abrir o arquivo e atualizar a lista MRU.
Não é recomendável a personalização desse manipulador de comando.
ID_EDIT_CLEAR Limpa a seleção corrente
Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.
CEditView Fornece uma implementação de usar este comando CEdit::Clear. O comando é desabilitado se não houver nenhuma seleção corrente.
Se você optar por implementar esse comando, recomendamos que você use essa ID 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 ID de comando.Consulte o tutorial do MFC amostra RABISCO para obter um exemplo de implementação.
ID_EDIT_COPY Copia a seleção corrente 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.
CEditView Fornece uma implementação deste comando, que copia o texto atualmente selecionado para a área de transferência sistema autônomo CF_TEXT usando CEdit::Copy. O comando é desabilitado se não houver nenhuma seleção corrente.
Se você optar por implementar esse comando, recomendamos que você use essa ID de comando.
ID_EDIT_CUT Recorta a seleção corrente 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.
CEditView Fornece uma implementação deste comando, que reduz o texto atualmente selecionado para a área de transferência sistema autônomo CF_TEXT usando CEdit::Cut. O comando é desabilitado se não houver nenhuma seleção corrente.
Se você optar por implementar esse comando, recomendamos que você use essa ID de comando.
ID_EDIT_FIND Começa a operação de localização, exibe 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.
CEditView Fornece uma implementação deste comando, que chama a função auxiliar de implementação OnEditFindReplace usar e armazenar as configurações anteriores de localizar/substituir no particular variáveis de implementação.The 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 ID de comando.
ID_EDIT_PASTE Insere o Sumário da área de transferência corrente.
Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.
CEditView Fornece uma implementação deste comando, que copia os dados da área de transferência corrente 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 do 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á desabilitado.Você é responsável por escrever o manipulador para o comando real para fazer a colagem real.Se seu aplicativo OLE também pode colar outros formatos, você deve fornecer seu próprio manipulador de interface do usuário atualização comando no modo de exibição ou documento (ou seja, em algum lugar antes de COleClientDoc no roteamento de destino do comando).
Se você optar por implementar esse comando, recomendamos que você use essa ID de comando.
Para substituir a implementação de OLE padrão, use COleClientItem::CanPaste.
ID_EDIT_PASTE_LINK Insere um link do Sumário da área de transferência corrente.
Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.
COleDocument fornece apenas um manipulador de interface do usuário do comando de atualização para este comando. Se a área de transferência não contém item/objeto OLE linkable, o comando será desabilitado.Você é responsável por escrever o manipulador para o comando real para fazer a colagem real.Se seu aplicativo OLE também pode colar outros formatos, você deve fornecer seu próprio manipulador de interface do usuário atualização comando no modo de exibição ou documento (ou seja, em algum lugar antes de COleDocument no comando destino roteamento).
Se você optar por implementar esse comando, recomendamos que você use essa ID de comando.
Para substituir a implementação de OLE padrão, use COleClientItem::CanPasteLink.
ID_EDIT_PASTE_SPECIAL Insere o Sumário da área de transferência corrente com as 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 essa caixa de diálogo.
Se você optar por implementar esse comando, recomendamos que você use essa ID 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.
CEditView Fornece uma implementação desse comando para repetir a última operação de localização. As variáveis de implementação privada para a última pesquisa são usadas.O comando será desabilitado se não pode ser tentada uma localização.
Se você optar por implementar esse comando, recomendamos que você use essa ID de comando.
ID_EDIT_REPLACE Começa a operação de substituição, exibe 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.
CEditView Fornece uma implementação deste comando, que chama a função auxiliar de implementação OnEditFindReplace usar e armazenar as configurações anteriores de localizar/substituir no particular variáveis de implementação.The 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 ID de comando.
ID_EDIT_SELECT_ALL Seleciona todo o documento.
Atualmente não há nenhuma implementação padrão para este comando.Você deve implementar isso para cada CView-classe derivada.
CEditView Fornece uma implementação deste comando, que 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 ID 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.
CEditView Fornece uma implementação deste comando, usando CEdit::Undo. O comando será desabilitado se CEdit::CanUndo retornará falso.
Se você optar por implementar esse comando, recomendamos que você use essa ID 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 ID de comando.
ID_WINDOW_NEW Abre outra janela do documento ativo.
CMDIFrameWnd::OnWindowNew implementa esse poderoso recurso usando o modelo de documento do documento corrente para criar outro quadro que contém outro modo de exibição do documento corrente.
Como a maioria dos vários documentos MDI (interface) janela comandos de menu, o comando é desabilitado se não houver nenhum ativo janela filho MDI.
Não é recomendável a personalização desse manipulador de comando.Se você desejar fornecer um comando que cria exibições adicionais ou janelas de quadro, provavelmente será melhor seu próprio comando de criação.Você pode clonar o código da CMDIFrameWnd::OnWindowNew e modificá-lo para as classes específicas de quadro e o modo de exibição de sua preferência.
ID_WINDOW_ARRANGE Organiza ícones na parte inferior de uma janela MDI.
CMDIFrameWnd implementa esse comando MDI padrão em uma função auxiliar de implementação OnMDIWindowCmd.Esse auxiliar mapeia IDs de comando para mensagens de janelas MDI e pode, portanto, compartilham muitos códigos.
Como a maioria dos comandos de menu janela MDI, o comando é desabilitado se não houver nenhum ativo janela filho MDI.
Não é recomendável a personalização desse manipulador de comando.
ID_WINDOW_CASCADE Cascades janelas para que elas se sobreponham.
CMDIFrameWnd implementa esse comando MDI padrão em uma função auxiliar de implementação OnMDIWindowCmd.Esse auxiliar mapeia IDs de comando para mensagens de janelas MDI e pode, portanto, compartilham muitos códigos.
Como a maioria dos comandos de menu janela MDI, o comando é desabilitado se não houver nenhum ativo janela filho MDI.
Não é recomendável a personalização desse manipulador de comando.
ID_WINDOW_TILE_HORZ Organiza janelas lado a lado horizontalmente.
Esse comando é implementado em CMDIFrameWnd Assim como ID_WINDOW_CASCADE, exceto uma mensagem diferente de janelas MDI é usada para a operação.
Você deve escolher a orientação de organizar organizar lado a lado a organizar lado a lado padrão para seu aplicativo.Você pode fazer isso, alterando a ID para o item de menu de janela "organizar organizar lado a lado a organizar lado a lado" a umID_WINDOW_TILE_HORZ or ID_WINDOW_TILE_VERT.
ID_WINDOW_TILE_VERT Organiza janelas lado a lado verticalmente.
Esse comando é implementado em CMDIFrameWnd Assim como ID_WINDOW_CASCADE, exceto uma mensagem diferente de janelas MDI é usada para a operação.
Você deve escolher a orientação de organizar organizar lado a lado a organizar lado a lado padrão para seu aplicativo.Você pode fazer isso, alterando a ID para o item de menu de janela "organizar organizar lado a lado a organizar lado a lado" a umID_WINDOW_TILE_HORZ or ID_WINDOW_TILE_VERT.
ID_WINDOW_SPLIT Interface de teclado ao divisor.
CView lida com esse comando para o CSplitterWnd implementação. Se o modo de exibição é parte de uma janela separadora, esse comando irá delegado à implementação funcionam CSplitterWnd::DoKeyboardSplit. Isso colocará o divisor em um modo que permitirá que os usuários de teclado dividir ou unsplit uma janela separadora.
Esse comando é desabilitado se o modo de exibição não estiver em um divisor.
Não é recomendável a personalização desse manipulador de comando.
ID_APP_ABOUT Invokes a caixa de diálogo sobre.
Não há nenhuma implementação padrão para a caixa sobre do aplicativo.O aplicativo criado pelo AppWizard padrão irá criar uma classe de diálogo personalizada para seu aplicativo e usá-lo sistema autônomo a caixa sobre.AppWizard também irá escrever o manipulador de comandos trivial que lida com esse comando e chama a caixa de diálogo.
Quase sempre você implementará este comando.
ID_APP_EXIT Sair do aplicativo.
CWinApp::OnAppExit lida com esse comando, enviando um WM_CLOSE mensagem a janela principal do aplicativo. O padrão de desligamento do aplicativo (solicitar arquivos dirty e assim por diante) é tratado pelo CFrameWnd implementação.
Não é recomendável a personalização desse manipulador de comando.Substituindo CWinApp::SaveAllModified ou o CFrameWnd é recomendável fechar lógica.
Se você optar por implementar esse comando, recomendamos que você use essa ID de comando.
ID_HELP_INDEX Tópicos da Ajuda listas de arquivo .hlp.
Observação: Você deve conectar-se esta opção para seu CWinApp-derivada de MAP de mensagens da classe para habilitar essa funcionalidade.
CWinApp::OnHelpIndex lida com esse comando chamando muito CWinApp::WinHelp.
Não é recomendável a personalização desse manipulador de comando.
ID_HELP_USING Exibe a Ajuda sobre como usar a Ajuda.
Observação: Você deve conectar-se esta opção para seu CWinApp-derivada de MAP de mensagens da classe para habilitar essa funcionalidade.
CWinApp::OnHelpUsing lida com esse comando chamando muito CWinApp::WinHelp.
Não é recomendável a personalização desse manipulador de comando.
ID_CONTEXT_HELP Modo de ajuda Enters deslocar-F1.
Observação: Você deve conectar-se esta opção para seu CWinApp-derivada de MAP de mensagens da classe para habilitar essa funcionalidade.
CWinApp::OnContextHelp lida com esse comando, definindo o cursor do modo de Ajuda, digite um loop modal e aguardando que o usuário selecionar uma janela para obter ajuda sobre. Consulte o Observação técnica 28 para obter mais detalhes sobre implementação do MFC.
Não é recomendável a personalização desse manipulador de comando.
ID_HELP Oferece ajuda no contexto corrente
Observação: Você deve conectar-se esta opção para seu CWinApp-derivada de MAP de mensagens da classe para habilitar essa funcionalidade.
CWinApp::OnHelp lida com esse comando obtendo o contexto de ajuda adequada para o contexto do aplicativo corrente. Isso lida com simples ajuda F1, ajuda sobre caixas de mensagens e assim por diante.Consulte o Observação técnica 28 para obter mais detalhes sobre a implementação de Ajuda do MFC.
Não é recomendável a personalização desse manipulador de comando.
ID_DEFAULT_HELP Exibe ajuda padrão para o contexto
Observação: Você deve conectar-se esta opção para seu CWinApp-derivada de MAP de mensagens da classe para habilitar essa 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 for desejada.
ID_NEXT_PANE Vai para o próximo painel
CView lida com esse comando para o CSplitterWnd implementação. Se o modo de exibição for parte de uma janela separadora, este comando delegará à implementação função CSplitterWnd::OnNextPaneCmd.Isso moverá o modo de exibição ativo para o próximo painel em separador.
Esse comando é desabilitado se o modo de exibição não é um divisor ou se não houver nenhum painel próximo para ir para.
Não é recomendável a personalização desse manipulador de comando.
ID_PREV_PANE Vai para o painel anterior
CView lida com esse comando para o CSplitterWnd implementação. Se o modo de exibição for parte de uma janela separadora, este comando delegará à implementação função CSplitterWnd::OnNextPaneCmd.Isso moverá o modo de exibição ativo para o painel anterior em que o divisor.
Esse comando é desabilitado se o modo de exibição não é um divisor ou se não houver nenhum painel anterior para ir para.
Não é recomendável a personalização desse manipulador de comando.
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 o seu CView-derivada da classe para inserir um item novo/objeto na seleção corrente.
Todos os aplicativos de cliente OLE devem implementar este comando.AppWizard, com a opção de OLE criará uma implementação esqueleto de OnInsertObject na sua classe de modo que você precisará concluir.
Consulte o MFC OLE amostra OCLIENT exemplo para uma implementação completa desse comando.
ID_OLE_EDIT_LINKS Edits vínculos OLE
COleDocument lida com esse comando usando a implementação fornecido pelo MFC da caixa de diálogo de links OLE padrão. A implementação desta caixa de diálogo é acessada através de COleLinksDialog classe. Se o documento corrente não contiver quaisquer links, o comando está desabilitado.
Não é recomendável a personalização desse manipulador de comando.
ID_OLE_VERB_FIRST... último intervalo de uma ID para os verbos OLE
COleDocument usa esse intervalo de ID de comando para os verbos suportados pelo item OLE selecionado no momento/objeto. Isso deve ser um intervalo como um determinado tipo de objeto do item OLE pode suporta verbos personalizados zero ou mais.No menu do seu aplicativo, você deve ter um item de menu com a ID de ID_OLE_VERB_FIRST.Quando o programa é executado, o menu será atualizado com a descrição do verbo de menu apropriado (ou menu pop-up com vários verbos).O gerenciamento de menu OLE é manipulado por AfxOleSetEditMenu, concluído no manipulador de interface do usuário de comandos de atualização para este comando.
Há sem manipuladores de comandos explícitos para lidar com cada da ID do comando nesse intervalo.COleDocument::OnCmdMsg é substituído para interceptar todas as identificações de comando nesse intervalo, transformá-los em números de verbo baseado em zero e inicialização o servidor para esse verbo (usando COleClientItem::DoVerb).
Personalização ou Outros uso desse intervalo de ID de comando não é recomendado.
ID_VIEW_TOOLBAR Alterna a barra de ferramentas e desativar
CFrameWnd lida 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 ID de janela filhos de AFX_IDW_TOOLBAR. O manipulador de comandos, na verdade, 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 UI do comando atualização verifica o item de menu quando a barra de ferramentas está visível.
Não é recomendável a personalização desse manipulador de comando.Se você deseja adicionar barras de ferramentas adicionais, você desejará clonar e modifique o manipulador de comandos e o manipulador de interface do usuário de comando de atualização para este comando.
ID_VIEW_STATUS_BAR Alterna o BAR de status logon e logoff
Esse comando é implementado em CFrameWnd Assim como ID_VIEW_TOOLBAR, exceto uma ID de janela filho diferentes (AFX_IDW_STATUS_BAR) é usado.
Manipuladores de comandos somente atualização
Várias IDs de comando padrão são usados sistema autônomo indicadores em barras de status.Esses o mesmo usar comando de atualização da interface do usuário mecanismo de manipulação para exibir seu estado corrente de visual durante o time ocioso do aplicativo.Desde que eles não podem ser selecionados pelo usuário (ou seja, você não pode empurrar um BAR de status painel), e, em seguida, ele não faz sentido ter um ON_COMMAND manipulador para essas IDs de comando.
ID_INDICATOR_CAPS : Indicador de bloquear do CAP.
ID_INDICATOR_NUM : Indicador do NUM bloquear.
ID_INDICATOR_SCRL : Indicador de bloquear SCRL.
ID_INDICATOR_KANA : KANA bloquear indicador (aplicável apenas aos sistemas em japonês).
Todos os três seguintes são implementados no CFrameWnd::OnUpdateKeyIndicator, um auxiliar de implementação que usa a ID de comando para mapear para a chave virtual apropriado.Uma implementação comum ativa ou desativa (para painéis de status desativados = sem texto) a CCmdUI objeto dependendo se a chave virtual apropriado está bloqueada no momento.
Não é recomendável a personalização desse manipulador de comando.
ID_INDICATOR_EXT: EXT terminou indicador de seleção.
ID_INDICATOR_OVR: OVeR tachado indicador.
ID_INDICATOR_REC: GRA ording indicador.
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 BAR de status (ou seja, nesta ordem: EXT, CAP, NUM, SCRL, OVR, REC).