Hola Sonic88, fijate de esta forma, mira dentro del UserControl_Initialize que hay un par de propiedades que tenes que setear.
Option Explicit
'propiedades del usercontrol en tiempo de diseño
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Const DT_CENTER = &H1
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Sub UserControl_Initialize()
'Propiedades del usercontrol en tiempo de diseño "Windowless = True"
UserControl.BackStyle = 0 'Transparent << opcional
UserControl.ClipBehavior = 0 'none
UserControl.ScaleMode = vbPixels '<< opcional
End Sub
Private Sub UserControl_Paint()
Dim Rec As RECT
Rec.Right = UserControl.ScaleWidth
Rec.Bottom = UserControl.ScaleHeight
DrawText UserControl.hdc, "hola mundo", 10, Rec, DT_CENTER
End Sub
Private Sub UserControl_HitTest(X As Single, Y As Single, HitResult As Integer)
HitResult = 1
End Sub
En cuanto al uso de la memoria , no estoy muy seguro pero tengo entendido que consume menos, alguien mas puede afirmar esto?
en cuanto al rendimiento depende de cuanto o que dibujes, ya que esto se va a ejecutar dentro del UserControl_Paint y si tenes un rutina muy cargada te podria llegar a relantar un poco el proyecto, en ese caso creo que combiene crear un buffer de lo que queres pintar, pero repito en un caso que sea muy muy nesesario, cosa que con un DrawText o un bitblit no haria falta.