Bonjour
J'ai un sérieux problème avec le message windows WM_NCLBUTTONUP. En effet, je ne parviens pas à capturer le relâchement du bouton gauche de la souris sur la barre de titre. Je ne peux capturer cet évènement uniquement lorsque la fenêtre est maximisée.
J'ai procédé comme suit :
Autant le message WM_NCLBUTTONDOWN est parfaitement capturé dans toutes les conditions, autant WM_NCLBUTTONUP a un comportement très capricieux. Ne parlons même pas des évènements OnMouseUp de TForm.
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
20
21
22
23
24
25
26 // Section privée private { Déclarations privées } procedure WMNCLButtonDown(var Message: TWMNCLButtonDown); message WM_NCLBUTTONDOWN; procedure WMNCLBUTTONUP(var Message: TWMNCLButtonUp) ; message WM_NCLBUTTONUP; // section implémentation procedure TBase.WMNCLButtonDown(var Message: TWMNCLButtonDown); begin if Message.HitTest = HTCAPTION then begin Caption := 'Position Down : ' + IntToStr(Message.XCursor) + ' - ' + IntToStr(Message.YCursor) + ' - ' + IntToStr(Message.Result); end; inherited; end; procedure TBase.WMNCLBUTTONUP(var Message: TWMNCLButtonUp) ; begin if Message.HitTest = HTCAPTION then begin Caption := 'Position Up : ' + IntToStr(Message.XCursor) + ' - ' + IntToStr(Message.YCursor) + ' - ' + IntToStr(Message.Result); end; inherited; end;
Bref ... si quelqu'un a une solution ou une piste (en évitant les hook de préférences qui sont incompatibles avec certains antivirus), je le remercie par avance.
Partager