Tôi đang làm việc với màn hình cảm ứng và sử dụng trình điều khiển Windows 7 được tích hợp sẵn (vì nó không bao giờ nhắc tôi cài đặt bất kỳ). nó hoạt động tốt, ngoại trừ một vấn đề nhỏ. Khi tôi chạm vào màn hình, nó sẽ không gửi WM_LBUTTONDOWN cho đến khi tôi di chuyển ngón tay ra khỏi màn hình. Nó xuất hiện để làm điều này để xác định xem tôi có ý định giữ để thi đua WM_RBUTTONDOWN hay không. (Ngoài ra, tôi đã cố vô hiệu hóa cử chỉ mô phỏng giữ, nhưng nó không bao giờ vô hiệu hóa trong thực tế.)WM_TOUCH không được gửi ngay lập tức với sự kiện chạm xuống
Vì vậy, tôi nghĩ rằng tôi sẽ chỉ nhận được tin nhắn WM_TOUCH. Và tôi thấy rằng WM_TOUCH (0x240) cũng không được gửi đến cửa sổ của tôi cho đến khi tôi di chuyển ngón tay ra khỏi màn hình. Tôi nghĩ rằng đánh bại mục đích của WM_TOUCH hoàn toàn.
Cả trước và sau khi đăng ký để nhận tin nhắn WM_TOUCH, tôi nhận được ba thông điệp ngay khi chạm vào màn hình:
1. Send: 0x02CC (undocumented tablet messages)
2. Post: 0x011B (undocumented)
3. Send: 0x011A (WM_GESTURENOTIFY)
0x011A là WM_GESTURENOTIFY, mà mã của tôi là để đáp ứng (có lẽ tôi không đáp ứng một cách chính xác?). Tôi trả lời với một phản hồi tiêu chuẩn (sử dụng mã mẫu từ MS) để nhận được thông báo đầy đủ.
Một điều nữa, tôi bắt đầu nhận được WM_TOUCH khi tôi đăng ký tin nhắn cảm ứng, nhưng tôi cũng tiếp tục nhận được tin nhắn WM_GESTURENOTIFY. Theo tài liệu MS, khi tôi đăng ký nhận WM_TOUCH, tôi không nhận được tin nhắn cử chỉ nữa.
Nếu bất cứ ai có thể cho tôi biết cách nhận tin nhắn WM_TOUCH ngay lập tức (ví dụ: khi tôi nhận được tin nhắn WM_GESTURENOTIFY), và không sau khi tôi để ngón tay của mình không chạm vào màn hình cảm ứng, tôi sẽ đánh giá cao điều đó.
Đây là những gì tôi làm bây giờ. Trong thực tế, tôi sử dụng WM_GESTURE cho XP và WM_TOUCH cho Win7. Điều này cho biết thêm một nếp nhăn, nhưng kết quả là rất tốt. – user574771