Try using ScreenToViewportPoint with your mouse position. It will give you the position relative to the screen size (viewport) of the application in 2D grid coordinates.
(0,0) would be the bottom-left of the viewport, (1,1) would be the top-right of the viewport, and (0.5,0.5) would be the center of the viewport. With that in mind, you can assume that:
(<0.5, y) = The mouse position is near the left of the screen.
(>0.5, y) = The mouse position is near the right of the screen.
(x, <0.5) = The mouse position is near the bottom of the screen.
(x, >0.5) = The mouse position is near the top of the screen.
I believe your idea would be no different than normalizing the vector I return in “mPositon”.
I know I could come up with a grid e.g if X < 0 then it must be at least going left or up or down something like that but I’m certain there must be an easier way?