mouse.pos.x and mouse.pos.y can be used to access the x and y coordinates of the mouse. They are relative to the screen, not window. These can be used if you don't want to use message passing. mouse.pos.z is the wheel. mouse.pos_text.x and mouse.pos_text.y are the text column and row. See ::/Demo/Games/Maze.ZC. See CMouseStateGlobals and CMouseHardStateGlobals. The hard designation, as in mouse_hard, represents hardware layer items before the application of an abstraction layer. //**** mouse_hard.pos.x = mouse_hard.prescale.x * mouse_hard.scale.x * mouse_grid.x_speed; mouse.presnap.x = ToI64(mouse.scale.x * mouse_hard.pos.x) + mouse.offset.x; if (mouse_grid.snap) mouse.pos.x = Trunc(mouse.presnap.x / mouse_grid.x) * mouse_grid.x + mouse_grid.x_offset; else mouse.pos.x = mouse.presnap.x; //****