Salut,
J'ai une dialogue qui est ouverte et je voudrais empecher le pointeur de sortir de la fenêtre et d'aller sur d'autre fenêtre (ou peut-être simplement désactiver une action sur une autre fenêtre qui ne serait pas au premier plan).
J'ai déjà fais une fonction qui me ramène le curseur à l'intérieur de la fenêtre, il marche mais pas l'extérieur de ma dialog (il ne se passe rien, je perd même le focus)
Visiblement, il ne faut pas la mettre dans la DLGPROC. Je suis encore un newbiz mais j'ai cru comprendre que lorque l'évènement dans la zone non-client WM_NCACTIVATE (ou autre WM_NC...) arrivait l'action était envoyé à la fonction gérant les évènements de la fenêtre, et là rien non plus. Ah bah merde alors...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 RECT rectposition; POINT pt; void StopCurseur (HWND hwnd) { GetWindowRect(hwnd, &rectposition); GetCursorPos(&pt); if (pt.x > rectposition.right) pt.x = rectposition.right; if (pt.x < rectposition.left) pt.x = rectposition.left; if (pt.y > rectposition.bottom) pt.y = rectposition.bottom; if (pt.y < rectposition.top) pt.y = rectposition.top; SetCursorPos(pt.x,pt.y); return ; }
Quelqu'un saurait-il comment qu'on fait cela ?
SeB
Partager