There are two basic types of ActiveX control projects you can build: those that you build entirely on your own and those that use other controls, called constituent controls, as building blocks.
When Building ActiveX controls from scratch, you start from a plain UserControl object. On this object, you have to perform graphical methods to draw a user interface for the user. For example, if you want to have a control with three round buttons, you have to use the circle method of the UserControl to draw those buttons. Also, you need to use drawing methods to show when this control receives the focus and what the buttons look like pressed down and lifted up. Although building ActiveX controls from scratch can be more difficult, you have complete control of the finished product. Also, when building ActiveX controls from scratch, you do not need to worry about licensing and distributing supporting files as you do when using component objects (to learn about building controls by using component objects, see Chapter 4, “Inheriting From and Extending Other ActiveX Controls”).
You can build ActiveX controls using one or more other controls, called constituent controls. These controls work as building blocks giving you pre-built functionality. This greatly reduces the programming effort for a control. You can expose any properties, methods, or events of the constituent controls that you want. Constituent controls can include any controls supplied with Visual Basic with the exception of the OLE Container control. Also, most controls that you purchase can be used as constituent controls (see the section "Licensing Issues" later in this chapter).
The constituent controls consist of intrinsic controls and non intrinsic controls. When using the intrinsic controls, you need not worry about licensing or distribution of supplemental files. The intrinsic controls are built in to the Visual Basic run-time files that you always need to distribute. The Visual Basic intrinsic controls include the following:
Label