Interpretar la entrada del usuario a través de una vista
Otras funciones miembro del identificador de vista e interpretan todas las entradas del usuario. Normalmente, definirá las funciones miembro del controlador de mensajes en la clase de vista que va a procesar:
Mensajes de Windows generados por acciones de mouse y teclado.
Comandos de menús, botones de barra de herramientas y teclas de acelerador.
Estas funciones miembro del controlador de mensajes interpretan las siguientes acciones como entrada, selección o edición de datos, incluido el movimiento de datos hacia el portapapeles y desde este:
Movimientos, clics, arrastres y dobles clics del mouse
Pulsaciones de teclas
Comandos de menú
Los mensajes de Windows que controla la vista dependen de las necesidades de la aplicación.
Temas de control y asignación de mensajes explica cómo asignar elementos de menú y otros objetos de interfaz de usuario a comandos y cómo enlazar los comandos a las funciones del controlador. Temas de control y asignación de mensajes también explica cómo MFC enruta los comandos y envía mensajes estándar de Windows a los objetos que contienen controladores para ellos.
Por ejemplo, es posible que la aplicación tenga que implementar el dibujo directo del mouse en la vista. En el ejemplo de Scribble se muestra cómo controlar los mensajes WM_LBUTTONDOWN, WM_MOUSEMOVE y WM_LBUTTONUP respectivamente para comenzar, continuar y finalizar el dibujo de un segmento de línea. Por otro lado, puede que a veces tenga que interpretar un clic del mouse en la vista como una selección. La función de controlador OnLButtonDown
de la vista determinará si el usuario estaba dibujando o seleccionando. Si se selecciona, el controlador determinará si el clic estaba dentro de los límites de algún objeto de la vista y, si es así, modificará la presentación para mostrar el objeto como seleccionado.
La vista también puede controlar determinados comandos de menú, como los del menú Editar para cortar, copiar, pegar o eliminar datos seleccionados mediante el portapapeles. Este controlador llamará a algunas de las funciones miembro relacionadas con el portapapeles de la clase CWnd
para transferir un elemento de datos seleccionado al portapapeles o desde este.