Don't use SetCapture for that, because it has some drawbacks and limitations as you have experienced.
SetCapture is meant to be used when you do an action with your mouse. Thus when you already have detected mouse movement over a control. Eg: you invoke it when you press (and hold) a mouse button inside a drawing control to draw lines. It is not meant to track mouse movement to see if you hoover over a control. For that you need _TrackMouseEvent.