Hola, proba algo asi:
Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
Private Sub Form_Load()
Me.ScaleMode = 3
Me.Height = 5000
Me.Width = 5000
Dim Octogono(1 To 8) As POINTAPI, i As Long
Dim X As Integer, Y As Integer
X = 0.05 * Me.ScaleWidth
Y = 0.05 * Me.ScaleHeight
Octogono(1).X = X
Octogono(1).Y = 0.3 * Me.ScaleHeight
Octogono(2).X = 0.3 * Me.ScaleWidth
Octogono(2).Y = Y
Octogono(3).X = 0.7 * Me.ScaleWidth
Octogono(3).Y = Octogono(2).Y
Octogono(4).X = Me.ScaleWidth - X
Octogono(4).Y = Octogono(1).Y
Octogono(5).X = Octogono(4).X
Octogono(5).Y = 0.7 * Me.ScaleHeight
Octogono(6).X = Octogono(3).X
Octogono(6).Y = Me.ScaleHeight - Y
Octogono(7).X = Octogono(2).X
Octogono(7).Y = Octogono(6).Y
Octogono(8).X = Octogono(1).X
Octogono(8).Y = Octogono(5).Y
i = Polygon(Me.hdc, Octogono(1), 8)
End Sub
saludos.