A canvas is a subwindow onto which graphics and text can be drawn, and mouse and keyboard input can be intercepted. At present, panel items cannot be placed on a canvas.
To determine whether a canvas is colour or monochrome, test the canvas's device context Colour boolean member variable.
When you draw onto a canvas, you are really drawing onto a device context (see wxDC, wxCanvasDC). Although you can use the members of wxCanvas for drawing, it is much better to get the device context from the canvas (see GetDC) and draw into that. Then, code which can draw into one device context can be reused for others, such as PostScript or memory device contexts (see wxPostScriptDC and wxMemoryDC).
wxCanvas::DestroyClippingRegion
wxCanvas::DrawRoundedRectangle
wxCanvas::GetScrollUnitsPerPage