Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La responsabilidad de trabajar con comandos se limita a establecer conexiones de mapa de mensajes entre los comandos y sus funciones de controlador, una tarea para la que se usa el Asistente para clases MFC. También debe escribir el código para los controladores de comandos.
Normalmente, los mensajes de Windows se envían a la ventana de marco principal, pero luego los mensajes de comando se enrutan a otros objetos. El marco enruta los comandos a través de una secuencia estándar de objetos de destino de comandos, uno de los cuales se espera que tenga un controlador para el comando. Cada objeto de destino de comandos comprueba su mapa de mensajes para ver si puede controlar el mensaje entrante.
Las diferentes clases de destino de comandos comprueban sus propios mapas de mensajes en momentos diferentes. Normalmente, una clase distribuye el comando a otros objetos para darles la primera oportunidad con el comando. Si ninguno de esos objetos maneja el comando, la clase original verifica su propio mapa de mensajes. A continuación, si no puede proporcionar un controlador por sí mismo, puede enrutar el comando a más destinos de comando. En la tabla Standard Command Route siguiente se muestra cómo cada una de las clases estructura esta secuencia. El orden general en el que un destino de comando enruta un comando es:
A su objeto secundario de destino del comando actualmente activo.
A sí mismo.
A otros destinos de comando.
Cuánto cuesta este mecanismo de enrutamiento En comparación con lo que hace el controlador en respuesta a un comando, el costo del enrutamiento es bajo. Tenga en cuenta que el marco genera comandos solo cuando el usuario interactúa con un objeto de interfaz de usuario.
Ruta de comandos estándar
| Cuando un objeto de este tipo recibe un comando . . . | Ofrece a sí mismo y a otros objetos objetivo de comandos la oportunidad de manejar el comando en este orden: |
|---|---|
Ventana de marco de MDI (CMDIFrameWnd) |
1. Activo CMDIChildWnd2. Esta ventana de marco 3. Aplicación ( CWinApp objeto) |
Ventana de marco de documento (CFrameWnd, CMDIChildWnd) |
1. Vista activa 2. Esta ventana de marco 3. Aplicación ( CWinApp objeto) |
| Vista | 1. Esta vista 2. Documento asociado a la vista |
| Documento | 1. Este documento 2. Plantilla de documento adjunta al documento |
| Cuadro de diálogo | 1. Este cuadro de diálogo 2. Ventana propietaria del cuadro de diálogo 3. Aplicación ( CWinApp objeto) |
Donde las entradas numeradas de la segunda columna de la tabla anterior mencionan otros objetos, como un documento, vea el elemento correspondiente en la primera columna. Por ejemplo, cuando lee en la segunda columna que la vista reenvía un comando al documento, vea la entrada “Documento” en la primera columna para seguir el enrutamiento detenidamente.