In a nutshell:
Width and Heigth are the size of the component, including the borders (that are also called non-client area, because a client is not supposed to work inside them).
ScaleWidth and ScaleHeight works together with ScaleLeft, ScaleTop and ScaleMode to define the coordinate system for the component. By default, ScaleTop and ScaleHeight are zero, and ScaleWidth and ScaleHeigth are Width and Height minus the border, in vbTwips (the default ScaleMode)
If you want to draw something using millimeters as units, just set ScaleMode to vbMillimeters, and after that ScaleWidth and ScaleHeight return the 'client' area of the control (or form, or Printer) in millimeters.
By default the 0,0 coordinate is in the top-left corner, but changing the scaleXXX properties you can change the coordinate system as you wish.
You can also define a scale to draw in a PictuteBox (or a form, or the Printer object) using a defined-system. For example, you can set the scale of a PictureBox to (0,0)-(100,1) to define an area of 100x1 "units", regradless on the size of the PictureBox (I do this trick to use a PictureBox instead of a progress bar)
For more info, goto
and then click on See Also and Example