Sé que la pantalla que utiliza estándares como VGA se puede ver como una matriz de píxeles al menos para el sistema operativo. Pero las pantallas modernas incluyen controles complejos de IU como botones y cuadros de texto.
No sé si el sistema operativo hace todo el trabajo o si es algo proporcionado por la tecnología del mouse fuera de la caja.
La pregunta ahora es, ¿cómo el sistema operativo realiza un seguimiento de las posiciones de Estos controles para controlar programáticamente.
display
mouse
operating-systems
Cholthi Paul Ttiopic
fuente
fuente
widget rendering
. Los widgets están vinculados a su software por eventos, por ejemplo, clic. Cómo se implementa el posicionamiento de los widgets. ¿Cómo determina OS el widget para recibir el evento desde el puntero del mouse?Respuestas:
Las coordenadas del botón, las dimensiones del botón y las coordenadas del puntero del mouse se almacenan en la memoria. Cuando el usuario presiona un botón del mouse, el sistema operativo compara la posición del puntero del mouse con las posiciones de los controles de UI y determina la acción apropiada.
Los estándares de visualización y el dibujo no están relacionados, es una operación puramente matemática.
fuente
Tiene coordenadas de pantalla y "Windows" (Rectángulos), por lo que siempre puede averiguar qué objeto "posee" el píxel en el que se encuentra actualmente el puntero, solo iterar recursivamente a través de las estructuras para verificar.
Las ventanas pueden ser jerárquicas y en cascada. P.ej. Los Elementos GUI no son más que subventanas en este contexto. El sistema operativo se iniciará desde una raíz (que tiene una lista de todas las ventanas de "nivel de raíz") y, por lo tanto, podrá hacer coincidir la posición del mouse con todos los rectángulos. Luego verifica si el rectángulo está en primer plano / tiene enfoque, etc. Luego repite las mismas verificaciones con "Windows" (elementos de GUI) dentro de esa ventana. Finalmente, solo llama a la función del controlador de eventos asociada con el elemento de GUI de nivel más bajo.
fuente