Sono riuscito a trovare una soluzione un po meno macchinosa e poco dispendiosa, posto un esempio nel caso a qualcuno possa interessare. In pratico creo un nuovo pennello che poi viene utilizzato nelle operazioni di riempimento (linoe retangoli elissi...)
codice:
Public mTramaBmp As Long
Public Function Disegna()
Dim hBrush As Long 'Nuovo Pennello
Dim hOldBrush As Long 'Vecchio penello
'Carico trama in una bitmap. Ho previsto una bitmap di 8x8
mTramaBmp = LoadImage(0, App.Path & "\Trama.bmp", 0, 8, 8, &H10)
'Creo il pennello con la trama
hBrush = CreatePatternBrush(mTramaBmp)
'associo il pennello al contesto grafico del form
hOldBrush = SelectObject(Me.hdc, hBrush)
DrawWidth = 1
'Operazioni di disegno sul form
Rectangle hdc, .rc.Left, .rc.Top, .rc.Right, .rc.Top + 10
Rectangle hdc, .rc.Left, .rc.Top, .rc.Left + 10, .rc.Bottom
Rectangle hdc, .rc.Right, .rc.Top, .rc.Right - 10, .rc.Bottom
Rectangle hdc, .rc.Left, .rc.Bottom, .rc.Right, .rc.Bottom - 10
'Riseleziono il vecchio pennello
SelectObject Me.hdc, hOldBrush
'elimino penello e bitmap
DeleteObject hBrush
DeleteObject mTramaBmp
end Function
:sexpulp: