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.
&Notanbsp; Você deve se conectar isso ao seu CWinApp-derivado de mapa de mensagem da classe para habilitar esta funcionalidade.
CWinApp::OnFileNew implementa esse comando forma diferente, dependendo do número de modelos de documento do aplicativo. Se houver apenas um CDocTemplate, CWinApp::OnFileNew irá criar um novo documento desse tipo, bem como a classe de quadro e modo de exibição apropriada.
Se houver mais de um CDocTemplate, CWinApp::OnFileNew solicitará que o usuário com uma caixa de diálogo (AFX_IDD_NEWTYPEDLG) deixá-los selecionar que tipo de documento a ser usado. O selecionado CDocTemplate é usado para criar o documento.
Uma personalização comum de ID_FILE_NEW é proporcionar um diferente e mais escolha gráfica de tipos de documento. Neste caso, você pode implementar seu próprio CMyApp::OnFileNew e colocá-lo em seu mapa da mensagem em vez de CWinApp::OnFileNew. Não é necessário chamar a implementação de classe base.
Outra personalização comum de ID_FILE_NEW é fornecer um comando separado para a criação de um documento de cada tipo. Neste caso você deve definir novo comando identificações, por exemplo, ID_FILE_NEW_CHART e ID_FILE_NEW_SHEET.
&Notanbsp; Você deve se conectar isso ao seu CWinApp-derivado de mapa de mensagem da classe para habilitar esta funcionalidade.
CWinApp::OnFileOpen tem uma implementação muito simple de chamar CWinApp::DoPromptFileName seguido de CWinApp::OpenDocumentFile com o nome do arquivo ou caminho do arquivo para abrir. A rotina de execução de CWinApp DoPromptFileName traz a caixa de diálogo padrão do FileOpen e preenche-lo com as extensões de ficheiro obtidas a partir dos atuais modelos de documento.
É uma personalização comum de ID_FILE_OPEN personalizar a caixa de diálogo de FileOpen ou adicionar filtros de arquivo adicional. A maneira recomendada para personalizar isto é substituir a implementação padrão com seu próprio diálogo FileOpen e chamar CWinApp::OpenDocumentFile com o nome de caminho ou arquivo do documento. Não é necessário chamar a classe base.
CDocument::OnFileClose chama CDocument:: SaveModified para prompt o usuário para salvar o documento, se ele foi modificado e, em seguida, chama OnCloseDocument. Toda a lógica de fechamento, incluindo a destruição do documento, é feita na rotina OnCloseDocument.
&Notanbsp;ID_FILE_CLOSE atua de forma diferente de um WM_CLOSE mensagem ou um comando de sistema SC_CLOSE enviado para a janela do quadro de documentos. Fechando uma janela irá fechar o documento somente se essa é a última janela de quadro mostrando o documento. Fechar o documento com ID_FILE_CLOSE não irá fechar apenas o documento mas irá fechar todas as janelas de quadro mostrando o documento.
A implementação usa uma rotina auxiliar CDocument::DoSave que é usado para OnFileSave e OnFileSaveAs. Se você salvar um documento que não tiver sido salvo antes (ou seja, ele não tem um nome de caminho, como no caso da ArquivoNovo) ou que foi ler de um documento só de leitura, a lógica OnFileSave atuará como o comando ID_FILE_SAVE_AS e perguntar ao usuário para fornecer um novo nome de arquivo. O processo de abrir o arquivo e fazer o salvamento é feito através da função virtual OnSaveDocument.
Há duas razões comuns para personalizar ID_FILE_SAVE. Para documentos que não salvar, simplesmente remova o ID_FILE_SAVE itens de menu e botões da barra de ferramentas de sua interface do usuário. Também certifique-se de que você nunca suja o documento (ou seja, nunca chamada CDocument::SetModifiedFlag) e o quadro nunca fará com que o documento seja salvo. Para documentos que salvar em algum lugar que não um arquivo em disco, defina um novo comando para que a operação.
No caso de um COleServerDoc, ID_FILE_SAVE é usado para salvar o 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 você não quiser usar o padrão CDocument serializar implementação, você deve substituir CDocument::OnSaveDocument em vez de OnFileSave.
A implementação de CDocument::OnFileSaveAs usa a mesma rotina de auxiliar de CDocument::DoSave como OnFileSave. O comando OnFileSaveAs é tratado apenas como ID_FILE_SAVE se os documentos não tinham nenhum nome de arquivo antes de salvar. COleServerDoc::OnFileSaveAs implementa a lógica para salvar um arquivo de dados de documento normal ou para salvar um documento do servidor que representa um objeto OLE incorporado em algum outro aplicativo como um arquivo separado.
Se você personalizar a lógica de ID_FILE_SAVE, você provavelmente desejará personalizar ID_FILE_SAVE_AS em uma forma similar ou a operação de "Salvar como" pode não se aplicar ao seu documento. Você pode remover o item de menu da barra de menus, se ele não for necessário.
A implementação de COleServerDoc::OnFileSaveCopyAs é muito semelhante ao CDocument::OnFileSaveAs, exceto que o objeto de documento não for "anexado" para o 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 sobre o nome do caminho ou título armazenados no documento.
A implementação de COleServerDoc::OnUpdateDocument simplesmente notifiies o recipiente que a incorporação deve ser salvo. O contêiner, em seguida, chama o OLE APIs adequadas para salvar o objeto incorporado.
Atualmente não há nenhum padrão para esta caixa de diálogo, e o quadro não tem nenhuma implementação padrão deste comando.
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
&Notanbsp; Você deve se conectar isso ao seu CWinApp-derivado de mapa de 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 as configurações para pelo menos neste documento ou no máximo de 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::OnFilePrintSetup tem uma implementação muito simple criar um objeto de CPrintDialog e chamando a função de execução de CWinApp::DoPrintDialog . Isso define a configuração da impressora padrão aplicativo.
A necessidade comum para personalizar este comando é para permitir configurações de impressora por documento, que devem ser armazenadas com o documento quando salvos. Para fazer isso que você deve adicionar um manipulador de mapa de Mensagemens em sua classe de CDocument que cria um objeto de CPrintDialog , inicializa-lo com os atributos de impressora apropriado (geralmente hDevMode e hDevNames), chamar o CPrintDialog::DoModal e salvar as configurações da impressora alterados. Para uma implementação eficiente, você deve olhar a implementação de CWinApp::DoPrintDialog para a detecção de erros e CWinApp::UpdatePrinterSelection para lidar com padrões sensatos e controle de alterações de todo o sistema de impressora.
&Notanbsp; Você deve se conectar isso ao seu CView-derivada de mapa de mensagem da classe para habilitar esta funcionalidade.
Esse comando imprime o documento atual, ou mais corretamente, inicia o processo de impressão, que consiste em invocar o diálogo de impressão padrão e executar o mecanismo de impressão.
CView::OnFilePrint implementa este comando e o loop de impressão principal. Ele chama o virtual CView:: OnPreparePrinting para prompt do usuário com a caixa de diálogo Imprimir. Em seguida, prepara a saída DC para ir para a impressora, abre 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 principal orientado a página. Para cada página, ele chama o virtual CView:: OnPrepareDC seguido por uma fuga de StartPage e chamando o virtual CView::OnPrint para essa página. Quando completa, é chamado de virtual CView::OnEndPrinting , e a impressão caixa de diálogo de progresso é fechada.
A arquitetura de impressão do MFC é projetada para ligar em muitas maneiras diferentes para impressão e imprimir Visualizar. Você normalmente encontrará as várias funções overridable do CView adequada para quaisquer tarefas de impressão orientado a página. Apenas no caso de um aplicativo que usa a impressora para saída orientada não página, você deve encontrar a necessidade de substituir a implementação de ID_FILE_PRINT.
&Notanbsp; Você deve se conectar isso ao seu CView-derivada de mapa de mensagem da classe para habilitar esta funcionalidade.
CView::OnFilePrintPreview inicia o modo de visualização de impressão chamando a função de auxiliar documentada CView::DoPrintPreview. CView::DoPrintPreview é o motor principal para o loop de visualização de impressão, assim como OnFilePrint é o motor 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. Por favor, consulte técnico Anotação 30, que discute alguns dos detalhes de visualização de impressão e como personalizá-lo.
CWinApp::OnUpdateRecentFileMenu é um manipulador de interface do usuário de comando de atualização é um dos usos mais avançados do mecanismo de ON_UPDATE_COMMAND_UI . No seu recurso de menu, você só precisa definir um item de menu único com ID ID_FILE_MRU_FILE1. Esse item de menu permanece inicialmente desativado.
Como o MRU lista cresce, menu mais itens são adicionados à lista. Os padrões de implementação padrão CWinApp para o limite padrão de quatro mais arquivos usados recentemente. Você pode alterar o padrão chamado CWinApp::LoadStdProfileSettings com um valor maior ou menor. A lista MRU é armazenada do aplicativo.Arquivo INI. A lista é carregada em função de InitInstance do seu aplicativo se você chamar LoadStdProfileSettingse é salvo quando seu aplicativo é encerrado. O manipulador de interface do usuário de comando de atualização MRU também irá converter os caminhos absolutos para caminhos relativos para exibir no menu de arquivo.
CWinApp::OnOpenRecentFile é o manipulador ON_COMMAND que executa o comando. 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 actualização da lista MRU.
Personalização desse manipulador de comando não é recomendada.
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::Clear. O comando é desabilitado se não houver nenhuma seleção atual.
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
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 este comando, recomendamos que você use esse comando. Consulte o exemplo MFC Tutorial Rabisco para uma implementação de exemplo.
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 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 este comando, recomendamos que você use essa identificação de comando.
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 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 este comando, recomendamos que você use essa identificação de comando.
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 de auxiliar de execução OnEditFindReplace de usar e armazenar as configurações anteriores de localizar/substituir em variáveis de implementação privada. A classe de CFindReplaceDialog é usada para gerenciar a caixa de diálogo sem janela restrita para avisar o usuário.
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
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 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 apenas fornece 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/objeto OLE incorporável, o comando será desativado. Você é responsável por escrever o manipulador para o comando fazer o colar real. Se seu aplicativo OLE pode colar também outros formatos, você deve fornecer seu próprio manipulador de interface do usuário de comando de atualização no seu modo de exibição ou documento (ou seja, algures antes de COleClientDoc no comando de destino de roteamento).
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
Para substituir a implementação padrão de OLE, use COleClientItem::CanPaste.
Atualmente não há nenhuma implementação padrão para este comando. Você deve implementar isso para cada CView-classe derivada.
COleDocument apenas fornece 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 passíveis de ligação OLE/objeto de item, o comando será desativado. Você é responsável por escrever o manipulador para o comando fazer o colar real. Se seu aplicativo OLE pode colar também outros formatos, você deve fornecer seu próprio manipulador de interface do usuário de comando de atualização no seu modo de exibição ou documento (ou seja, algures antes de COleDocument no comando de destino de roteamento).
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
Para substituir a implementação padrão de OLE, use COleClientItem::CanPasteLink.
Atualmente não há nenhuma implementação padrão para este comando. Você deve implementar isso para cada CView-classe derivada. MFC não oferece esta caixa de diálogo.
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
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 para repetir a última operação de localizar. As variáveis de implementação privada para localizar último são usadas. O comando é desabilitado se não pode ser tentado um achado.
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
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 de auxiliar de execução OnEditFindReplace de usar e armazenar as configurações anteriores de localizar/substituir em variáveis de implementação privada. A classe de CFindReplaceDialog é usada para gerenciar a caixa de diálogo sem janela restrita que solicita ao usuário.
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
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 este comando, recomendamos que você use essa identificação de comando.
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 está desabilitado se CEdit::CanUndo retorna FALSE.
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
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 este comando, recomendamos que você use essa identificação de comando.
CMDIFrameWnd::OnWindowNew implementa esse poderoso recurso usando o modelo de documento do documento atual para criar outra moldura que contém outro modo de exibição do documento atual.
Como a maioria dos Múltiplo documento interface (MDI) comandos do menu janela, o comando é desabilitado se não houver nenhuma janela de filho MDI ativa.
Personalização desse manipulador de comando não é recomendada. Se você desejar fornecer um comando que cria exibições adicionais ou quadro windows, você provavelmente vai ser melhor inventar seu próprio comando. Você pode clonar o código de CMDIFrameWnd::OnWindowNew e modificá-lo para as classes específicas de quadro e modo de exibição de seu gosto.
CMDIFrameWnd implementa este padrão comando MDI em uma função de auxiliar de execução OnMDIWindowCmd. Esse auxiliar mapeia as identificações de comando para mensagens do Windows MDI e portanto pode compartilhar um monte de código.
Como a maioria dos comandos de menu de janela MDI, o comando é desabilitado se não houver nenhuma janela de filho MDI ativa.
Personalização desse manipulador de comando não é recomendada.
CMDIFrameWnd implementa este padrão comando MDI em uma função de auxiliar de execução OnMDIWindowCmd. Esse auxiliar mapeia as identificações de comando para mensagens do Windows MDI e portanto pode compartilhar um monte de código.
Como a maioria dos comandos de menu de janela MDI, o comando é desabilitado se não houver nenhuma janela de filho MDI ativa.
Personalização desse manipulador de comando não é recomendada.
Este comando é implementado no CMDIFrameWnd como ID_WINDOW_CASCADE, exceto um diferente MDI Windows mensagem é usada para a operação.
Você deve escolher a orientação de azulejo de padrão para seu aplicativo. Você pode fazer isso alterando o ID para o item de menu de janela "Mosaico" ID_WINDOW_TILE_HORZ ou ID_WINDOW_TILE_VERT.
Este comando é implementado no CMDIFrameWnd como ID_WINDOW_CASCADE, exceto um diferente MDI Windows mensagem é usada para a operação.
Você deve escolher a orientação de azulejo de padrão para seu aplicativo. Você pode fazer isso alterando o ID para o item de menu de janela "Mosaico" ID_WINDOW_TILE_HORZ ou ID_WINDOW_TILE_VERT.
CView manipula esse comando para a implementação de CSplitterWnd . Se a exibição é parte de uma janela separadora, este comando irá delegate para a função de execução CSplitterWnd::DoKeyboardSplit. Isto irá colocar o divisor em um modo que permitirá que os usuários de teclado dividir ou unsplit a janela de separador.
Este comando está desabilitado se o Exibir não estiver em um divisor.
Personalização desse manipulador de comando não é recomendada.
Não há nenhuma implementação padrão para a caixa sobre do aplicativo. O aplicativo criado AppWizard padrão irá criar uma classe de diálogo personalizada para o seu aplicativo e usá-lo como sua caixa sobre. AppWizard também irá escrever o manipulador de comando trivial que lida com este comando e chama a caixa de diálogo.
Você quase sempre irá implementar este comando.
CWinApp::OnAppExit lida com este comando, enviando uma mensagem WM_CLOSE para a janela do aplicativo principal. O padrão de desligamento do aplicativo (aviso para arquivos sujos e assim por diante) é manipulado pela implementação de CFrameWnd.
Personalização desse manipulador de comando não é recomendada. Substituindo CWinApp::SaveAllModified ou o CFrameWnd fechar lógica é recomendado.
Se você optar por implementar este comando, recomendamos que você use essa identificação de comando.
&Notanbsp; Você deve se conectar isso ao seu CWinApp-derivado de mapa de mensagem da classe para habilitar esta funcionalidade.
CWinApp:: OnHelpIndex manipula esse comando chamando trivialmente CWinApp::WinHelp.
Personalização desse manipulador de comando não é recomendada.
&Notanbsp; Você deve se conectar isso ao seu CWinApp-derivado de mapa de mensagem da classe para habilitar esta funcionalidade.
CWinApp:: OnHelpUsing manipula esse comando chamando trivialmente CWinApp::WinHelp.
Personalização desse manipulador de comando não é recomendada.
&Notanbsp; Você deve se conectar isso ao seu CWinApp-derivado de mapa de mensagem da classe para habilitar esta funcionalidade.
CWinApp::OnContextHelp manipula este comando de configuração o cursor de modo de ajuda, inserindo um loop modal e espera o usuário selecionar uma janela para obter ajuda sobre. Consulte 28 anotação técnica para obter mais detalhes sobre a implementação do MFC ajudar.
Personalização desse manipulador de comando não é recomendada.
&Notanbsp; Você deve se conectar isso ao seu CWinApp-derivado de mapa de mensagem da classe para habilitar esta funcionalidade.
CWinApp:: OnHelp lida com este comando, obtendo o contexto certo ajuda para o contexto atual do aplicativo. Isto lida com simples F1 Ajuda, ajuda sobre caixas de mensagem e assim por diante. Consulte 28 anotação técnica para obter mais detalhes sobre a implementação da ajuda do MFC.
Personalização desse manipulador de comando não é recomendada.
&Notanbsp; Você deve se conectar isso ao seu CWinApp-derivado de mapa de mensagem da classe para habilitar esta funcionalidade.
Este comando normalmente é mapeado para CWinApp:: OnHelpIndex.
Um manipulador de comando diferentes pode ser fornecido se for desejada uma distinção entre a ajuda padrão e o índice da ajuda.
CView manipula esse comando para a implementação de CSplitterWnd . Se a exibição é parte de uma janela separadora, este comando irá delegate para a função de execução CSplitterWnd::OnNextPaneCmd. Isto irá mover o modo de exibição ativo para o próximo painel no separador.
Este comando está desabilitado se o modo de exibição não está em um divisor ou não há nenhum painel próximo para ir para.
Personalização desse manipulador de comando não é recomendada.
CView manipula esse comando para a implementação de CSplitterWnd . Se a exibição é parte de uma janela separadora, este comando irá delegate para a função de execução CSplitterWnd::OnNextPaneCmd. Isto irá mover o modo de exibição ativo para o painel anterior no separador.
Este comando está desabilitado se o modo de exibição não está em um divisor ou não há nenhum painel anterior para ir para.
Personalização desse manipulador de comando não é recomendada.
Atualmente não há nenhuma implementação padrão para este comando. Você deve implementar isso para seu CView-derivada de classe para inserir um novo objeto/item do OLE 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 de esqueleto de OnInsertObject na sua classe de modo de exibição que você terá que completar.
Consulte o MFC OLE exemplo exemplo OCLIENT para uma implementação completa deste comando.
COleDocument trata este comando usando a fornecido MFC implementação da caixa de diálogo de ligações OLE padrão. A implementação dessa caixa de diálogo é acessada através da classe COleLinksDialog . Se o documento atual não contiver quaisquer links, o comando está desabilitado.
Personalização desse manipulador de comando não é recomendada.
COleDocument usa esse intervalo de ID de comando para os verbos com suporte pelo atualmente selecionado OLE item/objeto. Isso deve ser um intervalo desde que um determinado tipo de objeto do item OLE pode oferecer suporte a zero ou mais verbos Personalizars. No menu do seu aplicativo, você deve ter um item de menu com o ID 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). A gestão do menu OLE é tratada pelo AfxOleSetEditMenu, feito no manipulador de interface do usuário de comando de atualização para este comando.
Não há nenhum manipuladores de comando explícito para lidar com cada um a identificação de comando neste intervalo. COleDocument::OnCmdMsg é substituído para interceptar todas as identificações de comando neste intervalo, transformá-los em números de verbo baseado em zero e iniciar o servidor para esse verbo (usando COleClientItem::DoVerb).
Personalização ou outro uso desse intervalo de ID de comando não é recomendado.
CFrameWnd manipula esse comando e o manipulador de interface do usuário de comando de atualização para alternar a visibilidade da barra de ferramentas. A barra de ferramentas deve ser uma janela filho do quadro com identificação de janela filho de AFX_IDW_TOOLBAR. O manipulador de comando 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 de interface do usuário de comando de atualização 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 adicionais, você vai querer clonar e modificar o manipulador de comando e o manipulador de interface do usuário de comando de atualização para este comando.
Este comando é implementado no CFrameWnd como ID_VIEW_TOOLBAR, exceto a identificação de janela filho diferentes (AFX_IDW_STATUS_BAR) é usada.
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