| Artículo | Relleno de Figuras (Instrucción Paint) |
| Autor | Harvey Triana |
| Tema | Programación general de gráficos con Visua Basic |
| Actualización | Septiembre 20 de 1997 |
| Descripción | Procedimiento para rellenar una figura cerrada con un color y/o patrón.. |
El procedimiento Sub Paint( ), hace lo mismo que la instrucción Paint de Quick Basic, VB no incorpora la instrucción -¿ Porqué ?. Se invoca con un objeto PictureBox que contien la figuara. El código se muestra a continuación:
'--------------------------------------------------------------------
'Pinta un figura cerrada con un color y/o patrón
'--------------------------------------------------------------------
DefInt A-Z
Option Explicit
'Patrones de llenado:
'vbFSSolid 0 Sólido
'vbFSTransparent 1 Transparente
'vbHorizontalLine 2 Línea horizontal
'vbVerticalLine 3 Línea vertical
'vbUpwardDiagonal 4 Diagonal hacia arriba
'vbDownwardDiagonal 5 Diagonal hacia abajo
'vbCross 6 Cruzado
'vbDiagonalCross 7 Cruzado diagonal
'Windows API Function used by Paint procedure (Private para un Form):
Private Declare Function FloodFill Lib "GDI32" _
( _
ByVal hDC, ByVal x, ByVal y, ByVal crColor As Long _
)
'--------------------------------------------------------------------------
' Basado en FloodFill API function
' Los parámetros x e y deben ser un punto dentro de la figura cerrada
' Harvey T, Petrosoft
'--------------------------------------------------------------------------
Public Sub Paint(P As PictureBox, x, y, FillClr As Long, Optional FillStyle As Variant)
If IsMissing(FillStyle) Then
P.FillStyle = vbFSSolid
Else
P.FillStyle = Int(FillStyle)
End If
P.FillColor = FillClr
If FloodFill(P.hDC, x, y, P.ForeColor) = 0 Then
MsgBox "Error Sub Paint..."
End If
End Sub
'----------------------------------------------------------------------
' Ejemplo sencillo, código en Form1 (con un PictureBox)
'----------------------------------------------------------------------
Private Sub Picture1_Paint()
Me.ScaleMode = vbPixels
Picture1.ScaleMode = vbPixels
'Figura de muestra
Picture1.Width = 200
Picture1.Height = 200
Picture1.Line (0, 100)-(100, 100)
Picture1.Line -Step(-50, -50)
Picture1.Line -Step(-50, 50)
'Relleno con color
Paint Picture1, 60, 90, vbYellow
End Sub
Harvey Triana Envíe sus comentarios a: [email protected]
Derechos libres de reutilización solo para programación.