Adding a control won't affect the speed that much. Anyways, to draw fancy boxes use the DrawEdge API. It can draw several types of 3D boxes. Just remember that most API's which deal with coordinates are using pixels and not twips.
Add this code to a Form and run the app. You should see two boxes, one that looks like a Frame Control and the other a depressed button.
VB Code:
Private Type Rect
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const BDR_RAISEDINNER = &H4
Private Const BDR_RAISEDOUTER = &H1
Private Const BDR_SUNKENINNER = &H8
Private Const BDR_SUNKENOUTER = &H2
Private Const BF_BOTTOM = &H8
Private Const BF_LEFT = &H1
Private Const BF_RIGHT = &H4
Private Const BF_TOP = &H2
Private Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)
Private Const EDGE_BUMP = (BDR_RAISEDOUTER Or BDR_SUNKENINNER)
Private Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
Private Const EDGE_RAISED = (BDR_RAISEDOUTER Or BDR_RAISEDINNER)
Private Const EDGE_SUNKEN = (BDR_SUNKENOUTER Or BDR_SUNKENINNER)
Private Declare Function DrawEdge Lib "user32" (ByVal hDC As Long, qrc As Rect, ByVal edge As Long, ByVal grfFlags As Long) As Long
Private Sub Form_Paint()
DrawBox
End Sub
Private Sub DrawBox()
Dim udtRect As Rect
Dim lngStatus As Long
udtRect.Left = 10
udtRect.Bottom = 100
udtRect.Top = 10
udtRect.Right = 100
lngStatus = DrawEdge(Me.hDC, udtRect, EDGE_ETCHED, BF_RECT)
udtRect.Left = 120
udtRect.Bottom = 100
udtRect.Top = 10
udtRect.Right = 210
lngStatus = DrawEdge(Me.hDC, udtRect, EDGE_SUNKEN, BF_RECT)
End Sub