WM_MOUSEMOVE-Nachrichten erreichen einen Thread also nur, wenn der gerade nicht ausgelastet (seine Nachrichtenschleife leer) ist. Nehmen wir jetzt an, der Anwender klickt auf das Fenster, während der Thread voll ausgelastet ist.There is a class of messages which are generated on demand rather than explicitly posted into a message queue. If you call GetMessage or PeekMessage and the queue is empty, then the window manager will look to see if one of these generated-on-demand messages is due, messages like WM_TIMER, WM_MOUSEMOVE, and WM_PAINT.
Würde das nicht bedeuten, dass der Klick das Fenster erreicht, ohne dass dies zuvor eine WM_MOUSEMOVE-Nachricht erhalten hat?
Ich speichere normalerweise in meinen WM_MOUSEMOVEs die Zeigerposition, und z.B. beim Picking, über welchem Objekt sich der Zeiger augenblicklich befindet. Das würde unter Last dazu führen, dass ein Klick an der falschen Stelle registriert würde.
Liege ich da richtig, oder hat jemand weiterführende Links dazu? Ist das schonmal einem von euch passiert?