#define GRID 5 U0 DrawMyMouse(CDC *dc, I64 x, I64 y) { dc->thick = 1; dc->flags &= ~(DCF_TRANSFORMATION | DCF_SYMMETRY); GrRect(dc, x, y, GRID, GRID); } U0 GridDemo() { CGridGlobals old_grid; U0 (*old_draw_mouse)(CDC *dc, I64 x, I64 y); //Can't init this type of variable. MemCopy(&old_grid, &mouse_grid, sizeof(CGridGlobals)); GridInit; mouse_grid.snap = TRUE; //You can set other stuff. mouse_grid.x = GRID; mouse_grid.y = GRID; old_draw_mouse = gr.fp_draw_mouse; gr.fp_draw_mouse = &DrawMyMouse; while (!mouse.lb) {//Left button to exit. GrPlot(, mouse.pos.x, mouse.pos.y); Yield; } DCFill; gr.fp_draw_mouse = old_draw_mouse; MemCopy(&mouse_grid, &old_grid, sizeof(CGridGlobals)); } GridDemo;