1 pièce(s) jointe(s)
Récupérer les messages WM_TOUCH avec une message-only window
Bonjour,
Je commence un projet où je dois récupérer les événements touch d'écrans tactiles avec l'API Win32 en C++. Je veux utiliser une fenêtre invisible de type message-only window, mais bien que la fenêtre soit créée et enregistrée correctement elle ne reçoit pas les messages WM_TOUCH. Voici le code de la fonction qui initialise la message-only window et en pièce jointe le main.cpp.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
HWND InitMessageOnlyWindow(HINSTANCE hInstance, int nCmdShow) {
LPWSTR szWindowClassName = TEXT("msgOnly");
WNDCLASSEX windowClass;
memset(&windowClass, 0, sizeof(windowClass));
windowClass.cbSize = sizeof(windowClass);
windowClass.hInstance = hInstance;
windowClass.lpfnWndProc = WndProc;
windowClass.lpszClassName = szWindowClassName;
if(RegisterClassEx(&windowClass)==0) {
std::cerr << "RegisterClass" << std::endl;
return 0;
}
HWND hWindow = CreateWindow(
szWindowClassName,
L"",
0,
0, 0, 0, 0,
HWND_MESSAGE,
NULL, hInstance, NULL);
if (!hWindow) {
std::cerr << "CreateWindow" << std::endl;
return 0;
}
if(RegisterTouchWindow(hWindow, 0)==0) {
std::cerr << "RegisterTouchWindow" << std::endl;
return 0;
}
return hWindow;
} |
J'ai testé :
- la réception des messages WM_INPUT dans la message-only window, c'est OK.
- la réception des messages WM_TOUCH dans une fenêtre classique, c'est OK.
Merci d'avance à la personne qui pourra me donner une piste pour comprendre ce problème. Je débute avec l'API Win32 et au-delà de tester d'autres paramètres pour les procédures de création et d'enregistrement je ne vois pas comment trouver où ça coince.
Marcus