Cómo utilizar el cuadro de diálogo de MFC para realizar la función de bloc de notas en teléfonos móviles sin utilizar vistas ~~~
La respuesta anterior no es lo suficientemente precisa
Para un cuadro de diálogo, el mensaje WM_MOUSEMOVE se puede procesar
Luego OnMouseMove(UINT nFlags, punto CPoint)
p>p>
El segundo punto del parámetro son las coordenadas del mouse
Pero esto no es muy útil, porque el origen (0.0) del valor de coordenadas obtenido por este punto es relativo al cuadro de diálogo y no a toda la pantalla. Para obtener las coordenadas del mouse de toda la pantalla,
Se recomienda agregar
POINT point2 en este proceso OnMouseMove
GetCursorPos(amp; point2); //Obtiene la posición del mouse, relativa a la pantalla
para obtener las coordenadas del mouse.
Otro problema es que si su ventana (cuadro de diálogo) es la ventana actual (activa, superior, con foco de entrada), cuando el puntero del mouse se mueve fuera del cuadro de diálogo, este El cuadro de diálogo no puede obtener mensajes del mouse .
Solución
Llame a esta función SetCapture() en la ubicación adecuada (como la inicialización de la ventana, presionar el botón izquierdo, etc.), de modo que el mouse se capture independientemente de si el mouse está en el cuadro de diálogo o no, pero asegúrese de recordar usar ReleaseCapture() para liberar la captura cuando no desee capturarla (ventana destruida, botón izquierdo del mouse levantado, etc.).