Put this Code in a standard module.

Code:
Option Explicit

Private Type POINTAPI
        x As Long
        y As Long
End Type

Private Const POLYFILL_LAST = 2

Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long


Public Function FillTriangle(hdc As Long, X1 As Long, Y1 As Long, X2 As Long, Y2 As Long, X3 As Long, Y3 As Long, Colour As ColorConstants)

Dim apiPoints(0 To 2) As POINTAPI
Dim hRgn As Long
Dim hBrush As Long

apiPoints(0).x = X1
apiPoints(1).x = X2
apiPoints(2).x = X3

apiPoints(0).y = Y1
apiPoints(1).y = Y2
apiPoints(2).y = Y3

hRgn = CreatePolygonRgn(apiPoints(0), 3, POLYFILL_LAST)

hBrush = CreateSolidBrush(Colour)

FillRgn hdc, hRgn, hBrush

DeleteObject hRgn
deleteobjet hBrush

End Function
then you can use this to draw your triangle. to draw a blue triangle in Picture1 with corners at 50,0 0,100 and 100,100 just type

Code:
FillTriangle Picture1.hdc, 50, 0, 0, 100, 100, 100, vbBlue
N.B. the measurements must be in pixels, use the ScaleY and ScaleY functions to help convert.


Hope this helps