With a derived control, you take an existing control (e.g., a button) and give it new capabilities. For example, you might create a button that knows how many times it has been clicked.
A composite control
In a composite control, you take existing controls (whether provided by the Framework, or ones you've created) and you package them together into a single control.
A from-scratch control
Creating a custom control from scratch requires that you draw the control yourself using the GDI+ capabilities covered in the next chapter.