Enrutamiento de comandos
La responsabilidad de ejecutar comandos se limita a crear conexiones de mensaje- mapa entre los comandos y el controlador funciona, una tarea que utiliza la ventana Propiedades. También debe escribir en la mayoría de los controladores de comando.
Los mensajes de Windows se envían normalmente a la ventana de marco principal, pero los mensajes de comando se enrutan a otros objetos. Se espera que el marco enruta comandos con una secuencia estándar de objetos de comando- destino, uno de los cuales tiene un controlador para el comando. Cada objeto de comando- destino comprueba el mapa de mensajes para ver si puede procesar el mensaje entrante.
Distintas clases de comando- destino comprueban mapas de mensajes en momentos diferentes. Normalmente, una clase distribuye el comando a otros ciertos objetos de darles la primera oportunidad del comando. Si cualquiera de esos objetos controlan el comando, la clase original comprueba su propio mapa de mensajes. A continuación, si no puede proporcionar un propio controlador, puede distribuir el comando a todavía más destinos de comando. La tabla Ruta estándar de comando muestra cómo cada una de las estructuras de las clases esta secuencia. El orden general en la que un destino de comando distribuye un comando es:
Al actualmente objeto secundario activo de comando- destino.
A sí mismo.
Otros destinos de comando.
¿Cómo costoso es este mecanismo de enrutamiento? En comparación con lo que el controlador en respuesta a un comando, el costo de enrutamiento es bajo. Tenga en cuenta que el marco genera comandos sólo cuando el usuario interactúa con un objeto de la interfaz de usuario.
Ruta estándar de comando
Cuando un objeto de este tipo recibe un comando. . . |
Se da y otros objetos de comando- destino una oportunidad de controlar el comando en este orden: |
---|---|
Ventana de marco MDI (CMDIFrameWnd) |
|
Ventana de marco de documento (CFrameWnd, CMDIChildWnd) |
|
View |
|
Documento |
|
Cuadro de diálogo |
|
Donde numerado las entradas en la segunda columna de la mención anterior de la tabla otros objetos, como un documento, vea el elemento correspondiente en la primera columna. Por ejemplo, cuando se leen en la segunda columna que la vista transmite a un comando el documento, vea la entrada de “documento” en la primera columna para seguir distribuir detenidamente.