TN022: El estándar dirige la implementación

[!NOTA]

La nota técnica siguiente no se ha actualizado desde que primero incluida en la documentación en línea.Como resultado, algunos procedimientos y temas podrían estar obsoletas o incorrectos.Para obtener la información más reciente, se recomienda busca el tema de interés en el índice de la documentación en línea.

Esta nota describe las implementaciones de comando estándar proporcionadas por MFC 2,0.Lea nota técnica 21 primero porque describe los mecanismos utilizados para implementar muchos de los comandos estándar.

Esta descripción se supone el conocimiento de las arquitecturas de MFC, API, y habitual de programación.Documentado así como se describe en “implementación indocumentada sólo” API.Esto no es un punto de partida para conocer el sobre las características de o cómo programar en MFC.Consulte en Visual C++ para obtener información general y para los detalles de las API documentados.

El problema

MFC define muchos id. de comando estándar en el archivo de encabezado AFXRES.H.La compatibilidad del marco de trabajo para estos comandos varía.La comprensión de dónde y cómo las clases del marco de trabajo administran estos comandos no solo muestran cómo el marco funciona internamente pero proporcionan información útil sobre cómo personalizar las implementaciones estándar y enseñarle a algunas técnicas para implementar sus propios controladores de comandos.

Contenido de la nota técnica de Esta

Cada identificador de comando se describe en dos secciones:

  • El título: el nombre simbólico del identificador de comando (por ejemplo, ID_FILE_SAVE) seguido del propósito de comando (por ejemplo, “guarda el documento actual”) separados por dos puntos.

  • Uno o más párrafos que describen las clases que implementan el comando, y lo que hace la implementación predeterminada

La mayoría de las implementaciones predeterminadas de comando son prealambradas en el mapa de mensajes de la clase base del marco.Hay algunas implementaciones de comando que requieren la conexión explícito en la clase derivada.Éstos se describen en “notas”.Si eligió las opciones correctas en AppWizard, estos controladores predeterminados estarán conectados en la aplicación esqueleto generada.

Convención de nomenclatura

Los comandos estándar utilizan una convención de nomenclatura simple que le recomendamos uso si es posible.La mayoría de los comandos estándar se encuentran en lugares estándar en la barra de menús de una aplicación.El nombre simbólico de comando comienza con “ID_” seguido por el nombre del elemento emergente estándar, seguido por el nombre del elemento de menú.El nombre simbólico está en mayúscula con divisiones de palabras de subrayado.Para los comandos que no tienen nombres estándar del elemento de menú, un nombre de comando lógico es el iniciar definido con “ID_” (por ejemplo, ID_NEXT_PANE).

Utilizamos el prefijo “ID_” para indicar los comandos que están diseñados para ser enlazados a los elementos de menú, los botones de la barra de herramientas, u otros objetos de la interfaz de usuario del comando.Controladores de comandos que administran comandos de “ID_” deben utilizar mecanismos de ON_COMMAND y de ON_UPDATE_COMMAND_UI de la arquitectura de comando de MFC.

Le recomendamos utilizamos el prefijo del estándar “IDM_” para los elementos de menú que no siguen la arquitectura del comando y no necesitan código menú-específico habilitarlos y deshabilitar.Por supuesto el número de comandos específicos del menú debe ser pequeño desde el siguiente de comando de MFC que la arquitectura no solo crea controladores de comandos más eficaces (dado que ejecutarán las barras de herramientas) pero que hace el código de controlador de comandos reutilizable.

Intervalos de identificador

Consulte las a nota técnica 20 para obtener más detalles sobre el uso de los intervalos de identificador en MFC.

Los comandos estándar de MFC se encuentran en el intervalo 0xE000 a 0xEFFF.No use las propiedades en los valores específicos de estos id. ya que están sujetas a cambios en versiones futuras de biblioteca.

La aplicación debe definir los comandos en el intervalo 0x8000 a 0xDFFF.

Id. de comando estándar

Para cada identificador de comando, hay una cadena de solicitud estándar de línea de mensajes que se puede encontrar en el archivo PROMPTS.RC.El identificador de cadena del indicador de menú debe ser igual que para el identificador de comando

  • ID_FILE_NEW crea un nuevo y vacío documento.

    [!NOTA]

    Debe conectarse esto al CWinApp- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    CWinApp::OnFileNew implementa este comando de manera diferente dependiendo del número de plantillas de documento en la aplicación.Si solo hay un CDocTemplate, CWinApp::OnFileNew creará un nuevo documento de ese tipo, así como la clase correspondiente del cuadro y vistas.

    Si hay más de un CDocTemplate, CWinApp::OnFileNew pedirá al usuario un diálogo (AFX_IDD_NEWTYPEDLG) que les permite seleccionar qué tipo de documento a utilizar.CDocTemplate seleccionado se utiliza para crear el documento.

    Una personalización común de ID_FILE_NEW es proporcionar una opción diferente y más gráfica de tipos de documento.En este caso puede implementar su propio CMyApp::OnFileNew y colocarlo en el mapa de mensajes en lugar de CWinApp::OnFileNew.No hay necesidad de llamar a la implementación de la clase base.

    Otra personalización común de ID_FILE_NEW es proporcionar un comando independiente para crear un documento de cada tipo.En este caso debe definir nuevos id. de comando, por ejemplo ID_FILE_NEW_CHART e ID_FILE_NEW_SHEET.

  • ID_FILE_OPEN abre un documento existente.

    [!NOTA]

    Debe conectarse esto al CWinApp- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    CWinApp::OnFileOpen tiene mismo una implementación sencilla de llamar a CWinApp::DoPromptFileName seguido de CWinApp::OpenDocumentFile con el nombre de archivo o de ruta de acceso del archivo para abrirlo.La implementación DoPromptFileName rutinario de CWinApp extrae para abrir el cuadro de diálogo estándar FileOpen y lo rellena con las extensiones de archivo obtenidas de plantillas de documento actuales.

    Una personalización común de ID_FILE_OPEN es personalizar el diálogo FileOpen o agregar filtros de archivo adicionales.La manera recomendada de personalizar esto es reemplazar la implementación predeterminada con su propio diálogo FileOpen; la llamada CWinApp::OpenDocumentFile con el nombre del archivo o la ruta de documento.No hay necesidad de llamar a la clase base.

  • ID_FILE_CLOSE cierre actualmente el documento abierto.

    CDocument::OnFileClose llama CDocument::SaveModified para solicitar al usuario guardar el documento si se ha modificado y después llama OnCloseDocument.Toda la lógica cerrada, incluida la destrucción del documento, se realiza en la rutina de OnCloseDocument .

    [!NOTA]

    ID_FILE_CLOSE actúa de manera diferente de un mensaje de WM_CLOSE o un comando del sistema de SC_CLOSE enviado a la ventana cuadro de documentos.Al cerrar una ventana se cierra el documento sólo si es la última ventana de marco que muestra el documento.Al cerrar el documento con ID_FILE_CLOSE no solo se cerrará el documento pero se cerrará abajo todas las ventanas de marco que muestran el documento.

  • ID_FILE_SAVE guarda el documento actual.

    La implementación utiliza una aplicación auxiliar CDocument::DoSave tiene que se utiliza para OnFileSave y OnFileSaveAs.Si guarda un documento de que no se ha guardado antes (es decir, no tiene un nombre de ruta, como en el caso de FileNew) o de que se ha leído de un documento de sólo lectura, la lógica de OnFileSave actuará como el comando de ID_FILE_SAVE_AS y pedirá al usuario proporcione un nombre de archivo nuevo.El proceso real de abrir el archivo y haga el guardar se realiza con la función virtual OnSaveDocument.

    Hay dos razones comunes para personalizar ID_FILE_SAVE.Para los documentos que no se guardan, quitar los elementos de menú y los botones de la barra de herramientas de ID_FILE_SAVE de la interfaz de usuario.Asegúrese también de que nunca modificado el documento (es decir, nunca llame a CDocument::SetModifiedFlag) y el marco nunca producirá el documento que se va a guardar.Para los documentos que guardan a en un lugar distinto de un archivo de disco, defina un nuevo comando de esa operación.

    En el caso de COleServerDoc, ID_FILE_SAVE se utiliza para el almacenamiento de archivo (para los documentos normales) y la actualización del archivo (para los documentos incrustados).

    Si los datos del documento se almacena en archivos de disco individuales, pero no desea utilizar CDocument predeterminado serializa la implementación, debe invalidar CDocument::OnSaveDocument en lugar de OnFileSave.

  • ID_FILE_SAVE_AS guarda el documento actual en nombre de archivo diferente.

    La implementación de CDocument::OnFileSaveAs utiliza la misma rutina auxiliar de CDocument::DoSave que OnFileSave.Controlan el comando de OnFileSaveAs como ID_FILE_SAVE si los documentos no tienen ningún nombre de archivo antes de guardar.COleServerDoc::OnFileSaveAs implementa la lógica para guardar un archivo de datos normal de documento o guardar un documento de servidor que representa un objeto OLE incrustado en otra aplicación como un archivo independiente.

    Si personaliza la lógica de ID_FILE_SAVE, es posible que desee personalizar ID_FILE_SAVE_AS de manera similar o la operación de “Guardar como” no se puede aplicar al documento.Puede quitar el elemento de menú de la barra de menús si no es necesaria.

  • ID_FILE_SAVE_COPY_AS guarda en copia el documento actual bajo el nuevo nombre.

    La implementación de COleServerDoc::OnFileSaveCopyAs es muy similar a CDocument::OnFileSaveAs, salvo que el objeto de documento “no está adjunto” en el archivo subyacente después de guardar.Es decir, si el documento en memoria “se modificó” antes de que se guarde, continúa “se modifica”.Además, este comando no tiene efecto en el nombre o el título de ruta almacenado en el documento.

  • ID_FILE_UPDATE Notifies el contenedor para guardar un documento incrustado.

    De COleServerDoc::OnUpdateDocument de implementación los notifiies simplemente el contenedor que la incrustación debe guardarse.El contenedor llama OLE adecuado API para guardar el objeto incrustado.

  • ID_FILE_PAGE_SETUP invoca un diálogo específico de la aplicación de la configuración de página y de diseño.

    Actualmente no hay un estándar para este diálogo, y el marco no tiene ninguna implementación predeterminada de este comando.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_FILE_PRINT_SETUP invocan el diálogo estándar de la configuración de impresión.

    [!NOTA]

    Debe conectarse esto al CWinApp- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    Este comando invoca el diálogo estándar de la configuración de impresión que permite al usuario personalizar la configuración de la impresora y la impresión para al menos este documento o a lo sumo todos los documentos de esta aplicación.Debe utilizar el Panel de control para cambiar la configuración de impresora predeterminada del sistema completo.

    CWinApp::OnFilePrintSetup tiene mismo una implementación simple que crea un objeto de CPrintDialog y que llama a la función de la implementación de CWinApp::DoPrintDialog .Esto establece la configuración de impresora predeterminada de la aplicación.

    La necesidad frecuente para personalizar este comando es tener en cuenta la configuración de impresora de por-documento, que se deben almacenar con el documento cuando se guardan.Para ello que debe agregar un controlador de mapa de mensajes en la clase de CDocument que cree un objeto de CPrintDialog , inicialice él con los atributos adecuados de la impresora (normalmente hDevMode y hDevNames), llame a CPrintDialog::DoModal, y guarda la configuración de impresora modificadas.Para una implementación más robusta, debe considerar la implementación de CWinApp::DoPrintDialog para detectar errores y CWinApp::UpdatePrinterSelection para tratar con valores predeterminados razonables y realizar cambios para todo el sistema de la impresora.

  • Impresión estándar de ID_FILE_PRINT del documento actual

    [!NOTA]

    Debe conectarse esto al CView- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    Este comando imprime el documento actual, o más correctamente, inicia el proceso de impresión, que consiste en invocar el diálogo y ejecutar estándar de impresión del motor de impresión.

    CView::OnFilePrint implementa este comando y el bucle principal de impresión.Llama a CView::OnPreparePrinting virtual al marcador del usuario con el cuadro de diálogo de impresión.Se prepara para generar elementos TITLE. para ir a la impresora, extrae para abrir el cuadro de diálogo de progreso de impresión (AFX_IDD_PRINTDLG), y envía el escape de StartDoc a la impresora.CView::OnFilePrint también contiene el bucle página-orientado principal de impresión.Para cada página, llame a CView::OnPrepareDC virtual seguido un escape de StartPage y llamando CView::OnPrint virtual para esa página.Cuando haya finalizado, se llama a CView::OnEndPrinting virtual, y el cuadro de diálogo de progreso de impresión se cierra.

    MFC que imprime la arquitectura está diseñado para enlace de muchas maneras diferentes para imprimir y vista previa de impresión.Encontrará normalmente las diversas funciones reemplazable de CView adecuadas para cualquier tarea que imprime página-orientada.Sólo en el caso de una aplicación que utiliza la impresora para la no-página orientó la salida, si se encuentra la necesidad de reemplazar la implementación de ID_FILE_PRINT .

  • Modo vista previa de impresión enter de ID_FILE_PRINT_PREVIEW en el documento actual.

    [!NOTA]

    Debe conectarse esto al CView- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    CView::OnFilePrintPreview inicia el modo de vista previa de impresión llamando a la función documentada CView::DoPrintPreviewauxiliares.CView::DoPrintPreview es el motor principal para el bucle de la vista previa de impresión, tal como OnFilePrint es el motor principal para el bucle de impresión.

    La operación de la vista previa de impresión se puede personalizar de diversas maneras pasando distintos parámetros a DoPrintPreview.Consulte las a nota técnica 30, que se describen algunos detalles de la vista previa de impresión y cómo personalizarlo.

  • Intervalo deID_FILE_MRU_FILE1…**FILE16   **A de los id. de comando para el archivo MRU list.

    CWinApp::OnUpdateRecentFileMenu es el de la interfaz de usuario de comandos de actualización que es una de las más avanzadas utiliza el mecanismo de ON_UPDATE_COMMAND_UI .En el recurso de menú, solo es necesario definir un elemento de menú único con el identificador ID_FILE_MRU_FILE1.Que el elemento de menú sigue deshabilitado inicialmente.

    Mientras la lista de archivos usados recientemente crece, varios elementos de menú se agregan a la lista.Los valores predeterminados de la implementación de CWinApp estándar del límite estándar de los cuatro archivos usados recientemente.Puede cambiar el valor predeterminado llamando a CWinApp::LoadStdProfileSettings con un valor mayor o menor.La lista de archivos usados recientemente se almacena en el archivo de .INI de la aplicación.La lista se carga en la función de InitInstance de su aplicación si llama a LoadStdProfileSettings, y guardada cuando se cierra la aplicación.El controlador de la interfaz de usuario de comandos de actualización MRU también convierte las rutas de acceso absolutas a las rutas de acceso relativas para la presentación en el menú archivo.

    CWinApp::OnOpenRecentFile es el controlador de ON_COMMAND que ejecuta el comando real.Obtiene simplemente el nombre de archivo de la lista de archivos usados recientemente y llama a CWinApp::OpenDocumentFile, que realiza el trabajo para abrir el archivo y actualizar la lista de archivos usados recientemente.

    La personalización de este controlador de comandos no se recomienda.

  • ID_EDIT_CLEAR borra la selección actual

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    CEditView proporciona una implementación de este comando mediante CEdit::Clear.Deshabilite el comando si no hay ninguna selección actual.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_EDIT_CLEAR_ALL borra todo el documento.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comandoVea a MFC el ejemplo paso SCRIBBLE para una aplicación de ejemplo.

  • ID_EDIT_COPY copia la selección actual en el portapapeles.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    CEditView proporciona una implementación de este comando, que copia el texto seleccionado en el portapapeles como CF_TEXT mediante CEdit::Copy.Deshabilite el comando si no hay ninguna selección actual.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_EDIT_CUT corta la selección actual en el portapapeles.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    CEditView proporciona una implementación de este comando, cortar el texto seleccionado en el portapapeles como CF_TEXT mediante CEdit::Cut.Deshabilite el comando si no hay ninguna selección actual.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_EDIT_FIND inicia la operación de búsqueda, extrae para abrir el cuadro de diálogo no modal de búsqueda.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    CEditView proporciona una implementación de este comando, que llama a la función OnEditFindReplace auxiliares de implementación para utilizar y almacenar la búsqueda anterior y reemplace las variables de implementación de los valores en privado.La clase de CFindReplaceDialog se utiliza para administrar el diálogo no modal para solicitar al usuario.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_EDIT_PASTE inserta el contenido del Portapapeles actuales.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    CEditView proporciona una implementación de este comando, que copia los datos actuales del portapapeles que reemplazar texto seleccionado utilizando CEdit::Paste.Deshabilite el comando si no hay CF_TEXT en el portapapeles.

    COleClientDoc simplemente proporciona un controlador de interfaz de usuario de comandos de actualización para este comando.Si el portapapeles no contiene un elemento o un objeto de OLE integrables, se deshabilitará el comando.Es responsable de escribir el controlador para que el comando real haga el pegado real.Si la aplicación OLE también puede pegar otros formatos, debe proporcionar su propio controlador de interfaz de usuario de comandos de actualización en la vista o documento (es decir, en algún lugar antes de COleClientDoc en el enrutamiento del destino de comando).

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

    Para reemplazar la implementación OLE estándar, utilice COleClientItem::CanPaste.

  • ID_EDIT_PASTE_LINK inserta un vínculo del contenido del Portapapeles actuales.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    COleDocument simplemente proporciona un controlador de interfaz de usuario de comandos de actualización para este comando.Si el portapapeles no contiene el elemento del objeto de OLE enlazables, se deshabilitará el comando.Es responsable de escribir el controlador para que el comando real haga el pegado real.Si la aplicación OLE también puede pegar otros formatos, debe proporcionar su propio controlador de interfaz de usuario de comandos de actualización en la vista o documento (es decir, en algún lugar antes de COleDocument en el enrutamiento del destino de comando).

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

    Para reemplazar la implementación OLE estándar, utilice COleClientItem::CanPasteLink.

  • ID_EDIT_PASTE_SPECIAL inserta el contenido del Portapapeles actuales con opciones.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.MFC no proporciona este diálogo.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_EDIT_REPEAT repite la última operación.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    CEditView proporciona una implementación de este comando de repetir la última operación de búsqueda.Las variables privadas de implementación para la búsqueda última se utilizan.Deshabilite el comando si una búsqueda no se probó.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_EDIT_REPLACE inicia la operación de reemplazo, aporta para buscar el no modal reemplaza diálogo.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    CEditView proporciona una implementación de este comando, que llama a la función OnEditFindReplace auxiliares de implementación para utilizar y almacenar la búsqueda anterior y reemplace las variables de implementación de los valores en privado.La clase de CFindReplaceDialog se utiliza para administrar el diálogo no modal que solicita al usuario.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_EDIT_SELECT_ALL Selects todo el documento.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    CEditView proporciona una implementación de este comando, que selecciona todo el texto del documento.Deshabilite el comando si no hay texto que desea seleccionar.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_EDIT_UNDO Undoes la última operación.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    CEditView proporciona una implementación de este comando, mediante CEdit::Undo.Deshabilite el comando si CEdit::CanUndo devuelve FALSE.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_EDIT_REDO rehace la última operación.

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para cada CView- clase derivada.

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_WINDOW_NEW abre otra ventana del documento activo.

    CMDIFrameWnd::OnWindowNew implementa esta característica eficaz mediante la plantilla de documento del documento actual para crear otro cuadro que contiene otra vista del documento actual.

    Como la mayoría de los comandos (MDI) del menú Ventana de interfaz de múltiples documentos, deshabilite el comando si no hay ninguna ventana secundaria de MDI activa.

    La personalización de este controlador de comandos no se recomienda.Si desea proporcionar un comando que cree vistas adicionales o las ventanas de marco, será probablemente mejor de inventar su propio comando.Puede clonar el código de CMDIFrameWnd::OnWindowNew y modificarlo a las clases específicas de cuadro y de la vista del tener como.

  • ID_WINDOW_ARRANGE organiza iconos en la parte inferior de una ventana MDI.

    CMDIFrameWnd implementa este comando estándar de MDI en una función OnMDIWindowCmdauxiliares de implementación.Esta aplicación auxiliar asigna id. de comando a los mensajes de MDI Windows y por lo que puede compartir mucho código.

    Como la mayoría de los comandos de menú Ventana MDI, deshabilite el comando si no hay ninguna ventana secundaria de MDI activa.

    La personalización de este controlador de comandos no se recomienda.

  • ID_WINDOW_CASCADE coloca en cascada las ventanas para que se solapa.

    CMDIFrameWnd implementa este comando estándar de MDI en una función OnMDIWindowCmdauxiliares de implementación.Esta aplicación auxiliar asigna id. de comando a los mensajes de MDI Windows y por lo que puede compartir mucho código.

    Como la mayoría de los comandos de menú Ventana MDI, deshabilite el comando si no hay ninguna ventana secundaria de MDI activa.

    La personalización de este controlador de comandos no se recomienda.

  • Ventanas de mosaicos de ID_WINDOW_TILE_HORZ horizontalmente.

    Implementan este comando en CMDIFrameWnd como ID_WINDOW_CASCADE, a menos que otro mensaje MDI Windows se utiliza para la operación.

    Debe elegir la orientación predeterminada de mosaico para la aplicación.Puede hacer esto cambiando el identificador del elemento de menú “colocar la ventana” a ID_WINDOW_TILE_HORZ o a ID_WINDOW_TILE_VERT.

  • Ventanas de mosaicos de ID_WINDOW_TILE_VERT verticalmente.

    Implementan este comando en CMDIFrameWnd como ID_WINDOW_CASCADE, a menos que otro mensaje MDI Windows se utiliza para la operación.

    Debe elegir la orientación predeterminada de mosaico para la aplicación.Puede hacer esto cambiando el identificador del elemento de menú “colocar la ventana” a ID_WINDOW_TILE_HORZ o a ID_WINDOW_TILE_VERT.

  • Interfaz de teclado de ID_WINDOW_SPLIT el divisor.

    CView controla este comando para la implementación de CSplitterWnd .Si es parte de una ventana divisora, este comando delegará a la función CSplitterWnd::DoKeyboardSplitde implementación.Esto iniciará el divisor en un modo que permite a los usuarios de teclado dividan o el unsplit una ventana divisora.

    Deshabilitan a este comando si la vista no está en un divisor.

    La personalización de este controlador de comandos no se recomienda.

  • ID_APP_ABOUT invoca el cuadro de diálogo Acerca de.

    No hay ninguna implementación estándar para el cuadro Acerca de una aplicación.La aplicación AppWizard-creada predeterminada creará una clase de diálogo para la aplicación y utilizarla como su cuadro Acerca de.AppWizard también escribirá el controlador trivial de comando que controla este comando e invoca el diálogo.

    Implementará casi siempre este comando.

  • Salida de ID_APP_EXIT la aplicación.

    CWinApp::OnAppExit controla este comando enviando un mensaje de WM_CLOSE a la ventana principal de la aplicación.El cierre estándar de la aplicación (que solicita los archivos modificados etc.) controla la implementación de CFrameWnd .

    La personalización de este controlador de comandos no se recomienda.Se recomienda reemplazar CWinApp::SaveAllModified o la lógica cerrada de CFrameWnd .

    Si decide implementar este comando, le recomendamos utilizamos este identificador de comando

  • ID_HELP_INDEX enumera temas de Ayuda del archivo de .HLP.

    [!NOTA]

    Debe conectarse esto al CWinApp- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    CWinApp::OnHelpIndex controla este comando trivial llamando a CWinApp::WinHelp.

    La personalización de este controlador de comandos no se recomienda.

  • Muestra la ayuda de ID_HELP_USING en cómo usarla.

    [!NOTA]

    Debe conectarse esto al CWinApp- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    CWinApp::OnHelpUsing controla este comando trivial llamando a CWinApp::WinHelp.

    La personalización de este controlador de comandos no se recomienda.

  • Modo de ayuda de las ENTRAR SHIFT-F1 de ID_CONTEXT_HELP.

    [!NOTA]

    Debe conectarse esto al CWinApp- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    CWinApp::OnContextHelp controla este comando estableciendo el modo cursor de ayuda, escribiendo un bucle modal y esperando al usuario seleccionar una ventana para obtener ayuda en.Consulte las a nota técnica 28 para obtener información más detallada sobre la implementación de la Ayuda de MFC.

    La personalización de este controlador de comandos no se recomienda.

  • ID_HELP proporciona ayuda en el contexto actual

    [!NOTA]

    Debe conectarse esto al CWinApp- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    CWinApp::OnHelp controla este comando obteniendo el contexto correcto de ayuda para el contexto de la aplicación.Esto controla la ayuda simple de F1, ayuda sobre los cuadros de mensaje y así sucesivamente.Consulte las a nota técnica 28 para obtener información más detallada sobre la implementación de la ayuda de MFC.

    La personalización de este controlador de comandos no se recomienda.

  • Ayuda de las pantallas de ID_DEFAULT_HELP para el contexto

    [!NOTA]

    Debe conectarse esto al CWinApp- asignación de mensajes de la clase derivada para habilitar esta funcionalidad.

    Asignados a este comando normalmente a CWinApp::OnHelpIndex.

    Un controlador distinto de comando puede proporcionarse si una distinción entre la Ayuda predeterminada y el índice de la Ayuda se desea.

  • ID_NEXT_PANE Goes al siguiente panel

    CView controla este comando para la implementación de CSplitterWnd .Si es parte de una ventana divisora, este comando delegará a la función CSplitterWnd::OnNextPaneCmdde implementación.Esto moverá la vista activa el panel siguiente del divisor.

    Deshabilitan a este comando si la vista no está en un divisor o no hay panel siguiente a ir.

    La personalización de este controlador de comandos no se recomienda.

  • ID_PREV_PANE Goes al panel anterior

    CView controla este comando para la implementación de CSplitterWnd .Si es parte de una ventana divisora, este comando delegará a la función CSplitterWnd::OnNextPaneCmdde implementación.Esto moverá la vista activa al panel anterior del divisor.

    Deshabilitan a este comando si la vista no está en un divisor o no hay panel anterior a ir.

    La personalización de este controlador de comandos no se recomienda.

  • ID_OLE_INSERT_NEW inserta un nuevo objeto OLE

    Actualmente no hay implementación estándar para este comando.Debe implementar esto para su CView- clase derivada para insertar un nuevo elemento/objeto de OLE en la selección actual.

    Todas las aplicaciones cliente OLE deben implementar este comando.AppWizard, con la opción OLE, creará una implementación básica de OnInsertObject en la clase de vista que tendrá que completar.

    Vea a MFC el ejemplo OLE de OCLIENT de ejemplo para una implementación completa de este comando.

  • ID_OLE_EDIT_LINKS editar vínculos OLE

    COleDocument controla este comando utilizando a la implementación de diálogo estándar de los vínculos OLE.La implementación de este diálogo se tiene acceso a través de la clase de COleLinksDialog .Si el documento actual no contiene vínculos, deshabilite el comando.

    La personalización de este controlador de comandos no se recomienda.

  • ID_OLE_VERB_FIRST… LAST un intervalo de verbos OLE

    COleDocument utiliza este intervalo de identificador de comando para verbos admitidos por el elemento del objeto seleccionado actualmente OLE.Debe ser un intervalo puesto que un elemento o un tipo de objeto de OLE especificados puede admitir cero o más verbo personalizado.En el menú de la aplicación, debe tener un elemento de menú con el identificador de ID_OLE_VERB_FIRST.Cuando se ejecuta el programa, el menú se actualizará con la descripción adecuada el verbo de menú (o el menú emergente con muchos verbos).Administración de menú OLE controla AfxOleSetEditMenu, realiza en el controlador de la interfaz de usuario de comandos de actualización para este comando.

    No hay controladores explícitos de comando para administrar cada uno del identificador de comando en este intervalo.COleDocument::OnCmdMsg se invalida para interceptar todos los id. de comando en este intervalo, los convierte en números cero-basados el verbo, y inicia el servidor para ese verbo (mediante COleClientItem::DoVerb).

    La personalización u otro uso de este intervalo de identificadores de comando no se recomienda.

  • ID_VIEW_TOOLBAR alterna la barra de herramientas por intervalos

    CFrameWnd controla este comando y el controlador de interfaz de usuario de actualización-comando de alternar el estado de visibilidad de la barra de herramientas.La barra de herramientas debe ser una ventana secundaria del marco con el identificador de ventana secundaria de AFX_IDW_TOOLBAR.El controlador de comandos alterna realmente la visibilidad de la ventana de la barra de herramientas.CFrameWnd::RecalcLayout se utiliza para actualizar la ventana de marco con la barra de herramientas en el nuevo estado.El controlador de interfaz de usuario de actualización-comando comprueba el elemento de menú a la barra de herramientas está visible.

    La personalización de este controlador de comandos no se recomienda.Si desea agregar barras de herramientas adicionales, deseará clonar y modificar el controlador de comandos y el controlador de la interfaz de usuario de actualización-comando para este comando.

  • ID_VIEW_STATUS_BAR alterna la barra de estado por intervalos

    Implementan este comando en CFrameWnd como ID_VIEW_TOOLBAR, a menos que se utilice un identificador diferente de la ventana secundaria (AFX_IDW_STATUS_BAR).

Controladores de comandos de la Actualización-Solamente

Varios id. de comando estándar se utilizan como marcadores de barras de estado.Éstos utilizan la misma interfaz de usuario de actualización-comando que administra el mecanismo para mostrar el estado visual actual durante el tiempo de inactividad de la aplicación.Puesto que no pueden ser seleccionado por el usuario (es decir, no puede insertar un panel de barra de estado), no tiene sentido de tener un controlador de ON_COMMAND para estos id. del comando.

  • ID_INDICATOR_CAPS : Indicador de bloqueo de LOCK.

  • ID_INDICATOR_NUM : Indicador de BLOQ NUM.

  • ID_INDICATOR_SCRL : Indicador de bloqueo de SCRL.

  • ID_INDICATOR_KANA : Indicador de bloqueo de KANA (aplicable sólo a los sistemas japonés).

Los tres de ellos se implementan en CFrameWnd::OnUpdateKeyIndicator, aplicación auxiliar de implementación que utilice el identificador de comando para asignar a la clave adecuada de Virtual.Una implementación común habilita o deshabilita (para los paneles de estado deshabilitados = ningún texto) el objeto de CCmdUI dependiendo de si la clave adecuada de Virtual está bloqueada actualmente.

La personalización de este controlador de comandos no se recomienda.

  • ID_INDICATOR_EXT : EXTterminó el marcador seleccione.

  • La marca de strike (ID_INDICATOR_OVR : OVeR.

  • ID_INDICATOR_REC : RECording el marcador.

Actualmente no hay implementación estándar para estos marcadores.

Si decide implementar estos marcadores, le recomendamos utilizamos estos id. de marcador y mantener el orden de los marcadores de la barra de estado (es decir, en este orden: EXTENSIÓN, LOCK, NUM, SCRL, SOB, REC).

Vea también

Otros recursos

Notas técnicas por número

Notas técnicas por categoría