Discusión sobre el artículo "Interfaces gráficas II: Configuración de los manejadores de eventos de la librería (Capítulo 3)"

 

Artículo publicado Interfaces gráficas II: Configuración de los manejadores de eventos de la librería (Capítulo 3):

En los artículos anteriores hemos implementado las clases para la creación de todas las partes integrantes del menú principal. Ha llegado el momento para conocer los manejadores de eventos en las clases base principales y en las clases de los controles creados. Se presta una atención especial a la gestión del estado del gráfico dependiendo de la posición del cursor del ratón.


Arrays personales de controles

Vamos a realizar un experimento. Pulsamos el botón izquierdo sobre un elemento del menú contextual en aquella área donde el cursor se encuentra fuera de la zona del formulario. Veremos que el deslizamiento del gráfico no está desactivado y se puede ejecutarlo encontrándose sobre el control. Es un error en la funcionalidad, y eso no puede ser así. Por eso haremos que el scrolling del gráfico y los modos del deslizamiento de los niveles comerciales estén desactivados independientemente del control sobre el que se encuentra el cursor del ratón. 

En primer lugar, añadimos el seguimiento del foco sobre el control al manejador del menú contextual (véase el código). Si el menú contextual se encuentra ocultado, no tiene sentido seguir adelante. Hay que seguir esta regla siempre para ahorrar el tiempo.

Prueba previa de manejadores de eventos

Una vez introducidos todos los cambios, hay que compilar todos los archivos e iniciar el programa en el gráfico para realizar la prueba. Ahora cuando hacemos clic en un elemento independiente del menú en el formulario, su menú contextual va a abrirse si estaba ocultado, y viceversa. Además, cuando el menú contextual está abierto, el color del fondo del elemento del menú en el formulario va a ser fijo: es decir, no va a cambiarse si quitamos el cursor de su área (véase captura de pantalla). 

Fig. 1. Prueba de mostrar y ocultar el menú contextual.

Autor: Anatoli Kazharski