2010-05-22 25 views
7

Fondamentalmente chiamo TrackMouseEvent nel mio WM_CREATE quindi lo chiamo di nuovo dopo un WM_MOUSELEAVE ma questo blocca il mio programma. Dove dovrei essere incollato? GrazieTrackMouseEvent not working

risposta

13

È necessario chiamare TrackMouseEvent quando il mouse entra nel controllo e non quando lascia il proprio controllo.

È possibile chiamare TrackMouseEvent sul messaggio WM_MOUSEMOVE. Non è necessario chiamare TrackMouseEvent ogni volta che viene attivato WM_MOUSEMOVE, solo una volta fino a quando non si ottiene un altro WM_MOUSELEAVE. Dopo aver ottenuto il numero WM_MOUSELEAVE, puoi impostare un po 'di flag in modo che la prossima chiamata a WM_MOUSEMOVE saprà di nuovo di chiamare TrackMouseEvent.

Fondamentalmente è possibile emulare un WM_MOUSEENTER fittizio utilizzando WM_MOUSEMOVE e con questo set di flag.

+0

Quale evento è? – jmasterx

+0

@ user146780: Vedi modifica –