Under debugger m_bMouseWheel (which is global to the class) is always true.
The problem is maybe that OnSetCursor is not triggered during that time (one mousewheel).
The doc say that "The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window" which is not the case when mousewheeling.
So I am thinking on SendMessage(WM_SETCURSOR, some "params") before entering Zoom function.
But actually I do not know what to use as "params".
Sorry, I am not sure what that has to do with your original question. If you want to zoom an image based on the mouse wheel then you just need to capture the mouse movement and call your zoom function with suitable parameter values.