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.