Estoy trabajando con una pantalla táctil y el uso de controladores integrados de Windows 7 (ya que nunca me incitó a instalar ninguno). funciona bien, excepto por un pequeño problema. Cuando toco la pantalla, no enviará WM_LBUTTONDOWN hasta que mueva mi dedo fuera de la pantalla. Parece hacer esto para determinar si tengo intención de mantener presionada para emular WM_RBUTTONDOWN o no. (Además, traté de desactivar el gesto de emulación de retención, pero nunca se desactiva en la práctica.)WM_TOUCH no se envía inmediatamente con el evento de toque hacia abajo
Así que pensé que simplemente recibiría los mensajes WM_TOUCH. Y descubrí que WM_TOUCH (0x240) tampoco se envía a mi ventana hasta que muevo mi dedo fuera de la pantalla. Creo que eso derrota el propósito de WM_TOUCH por completo.
Tanto antes como después de registrar para recibir mensajes WM_TOUCH, he recibido tres mensajes inmediatamente después de tocar la pantalla:
1. Send: 0x02CC (undocumented tablet messages)
2. Post: 0x011B (undocumented)
3. Send: 0x011A (WM_GESTURENOTIFY)
0x011A es WM_GESTURENOTIFY, que mi código es dar respuesta a (tal vez no estoy respondiendo correctamente?) Respondo con una respuesta estándar (usando código de ejemplo de MS) para recibir notificaciones completas.
Otra cosa, comencé a obtener WM_TOUCH cuando me registro para mensajes táctiles, pero continúo recibiendo el mensaje WM_GESTURENOTIFY también. De acuerdo con la documentación de MS, una vez que me registro para obtener WM_TOUCH, ya no recibo mensajes de gestos.
Si alguien me puede decir cómo recibir mensajes WM_TOUCH inmediatamente (por ejemplo, cuando recibo los mensajes WM_GESTURENOTIFY), y no después de que levante el dedo de la pantalla táctil, lo agradecería mucho.
Esto es lo que hago ahora. En efecto, uso WM_GESTURE para XP y WM_TOUCH para Win7. Esto agrega una arruga, pero los resultados son muy buenos. – user574771