To draw something "over" some other widget is always a bit tricky solution - so the first question is "why?".
If you insist on doing so, in this situation probably the simplest solution is to use "Picture" static Ctrl - this is a simple Ctrl that displays the Drawing. Simply add it to layout (it is not yet predefined in .usc, so you have to add it as user class) AFTER the ArrayCtrl so that it will be painted over it.
To answer some other question:
- Of course, parent background has to painted behind all child widgets.
- Paint method is responsible for redrawing widget upon system request. In other words, this is where you draw the visual content of the widget.
- "Drawing" is a container that stores recording of Draw operations. You can think about it as of vector image. DrawDrawing replays those operations.
- [0, 0] at upper left corner is quite common solution for GUI... It is definitely better for most widgets (e.g. lines in editors or grids are counted from top to bottom).