Red de conocimiento informático - Aprendizaje de programación - Programación Mfcpictrue

Programación Mfcpictrue

GetCursorPos obtiene las coordenadas de la pantalla, GetClientRect son las coordenadas de la ventana y los dos sistemas de coordenadas no coinciden. Por supuesto, el resultado de PtInRect es incorrecto.

La forma correcta de completar este programa es:

El juicio correcto debe colocarse al frente de la función. Si el valor de retorno de este juicio es falso, entonces los cálculos de coordenadas posteriores son completamente innecesarios, sin mencionar la mejora de la eficiencia y se evita el posible impacto del mapeo del sistema de coordenadas.

En OnMouseMove, GetCursorPos es inútil y reducirá la eficiencia. Los parámetros de función se utilizan para determinar las coordenadas.

Si están en diferentes sistemas de coordenadas, puede utilizar el par de funciones ScreenToClient/ClientToScreen para convertir las coordenadas al mismo sistema de coordenadas y luego realizar cálculos y juicios.