To send a message means to call a function and pass it a standard 8 argument message.
For example, to send a message to a window or grid, call:
XuiSendMessage ( window, message, v0, v1, v2, v3, r0, r1 )
XuiSendMessage ( grid, message, v0, v1, v2, v3, kid, r1 )
window or grid contains a window number or grid number, message contains the message number of the desired operation to perform. The meaning of the other arguments depends on message. For messages sent to grids, the kid argument contains the kid number within grid to send the message to, or 0 for grid itself.
XuiSendMessage() looks up the function responsible for operating window or grid, then calls it, passing it all 8 message arguments.
GraphicsDesigner vs GuiDesigner
GraphicsDesigner and GuiDesigner have many similar functions.
You can write pure graphics programs (without GUI) by calling only GraphicsDesigner functions (prefix Xgr).
But GUI programs must call GuiDesigner functions whenever equivalent functions exist in both function libraries, or GuiDesigner will malfunction. Always check GuiDesigner first.
To draw graphics, however, your program calls Xgr drawing functions in the GraphicsDesigner library. GuiDesigner grids are GraphicsDesigner grids. So your program passes GuiDesigner grid numbers to GraphicsDesigner functions to draw in them.