Introduction
At times, you may find yourself running into needs in your application that cannot be solved in the way you want by any of the default controls provided by the library. Alternatively, there may be cases where the control works but doesn't fit the look and feel you wish to provide in your application. This is where the use of user interface primitives comes in; these primitives are the basic drawing routines that are used to draw and display all of the visible content of the graphical user interface on screen.
The wxPython library provides access to a number of classes that can be used to draw custom displays on screen. These functions include DeviceContexts, pens, brushes, colors, and a number of other high-level functions that allow you to create and draw whatever you like on a canvas or, in some cases, even provide custom renders to customize the existing controls. In this chapter, we will take an overview of how to use DeviceContexts to draw custom controls and graphics on...