Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Fonction ExtFloodFill

Declare Function ExtFloodFill Lib "gdi32" ( _
                 
ByVal hDC As Long, _
                 ByVal XStart As Long, _
                 ByVal YStart As Long, _
                 ByVal ClrRef As Long, _
                 ByVal FillType As Long) As Long
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui

Description :
(Origine : Cath - h.cathelineau@infonie.fr)

La fonction ExtFloodFill remplit une surface avec la couleur contenue dans la propriété FillColor de l'objet.
Le coloriage commence au point défini par les coordonnées XStart, YStart et cesse :
- si FillType = 0, lorsqu'une couleur égale à ClrRef est atteinte.
- si FillType = 1, lorsqu'une couleur différente de ClrRef est rencontrée.

Si la fonction réussie, elle retourne une valeur différente de 0.

(ci-desous un exemple d'application basé sur FillType = 0)

Exemple d'utilisation :

' Origine : Cath (h.cathelineau@infonie.fr)

Private Declare Function ExtFloodFill Lib "gdi32" (ByVal hDC As Long, _
       
ByVal XStart As Long, ByVal YStart As Long, _
       
ByVal ClrRef As Long, ByVal FillType As Long) As Long

Private Sub
Form_Activate()
Dim I As Integer
' Préparation de la feuille
Me.ScaleMode = 3
Me.Move (Screen.Width - 4410) / 2, _
         (Screen.Height - 6450) / 2, _
        6450, 4410
' Préparation du contrôle PictureBox (Picture1)
With Picture1
    .AutoRedraw =
True
   
.ScaleMode = vbPixels
    .ForeColor = vbBlack
    .FillColor = vbRed
    .Top = 7
    .Left = 7
    .Height = 250
    .Width = 250
End With
' Préparation du dessin exemple
Picture1.FillStyle = 1
Picture1.Line (10, 10)-(190, 170), 0&, B
Picture1.Line (10, 10)-(190, 170), 0&
Picture1.Line (10, 170)-(190, 10), 0&
Picture1.Circle (100, 90), 80, 0&, , , 0.6
Picture1.Circle (100, 90), 70, 0&, , , 2
' Palette de couleurs
For I = 1 To 16
    Me.Line (260, 11 * I)-(300, (11 * I) + 11), QBColor(0), B
    Me.Line (261, (11 * I) + 1)-(299, (11 * I) + 10), QBColor(I - 1), BF
Next
End Sub

Private Sub
Form_MouseDown(Button As Integer, Shift As Integer, _
                           X
As Single, Y As Single)
' Enregistre la couleur du point courant sous la souris.
Picture1.FillColor = Point(X, Y)
End Sub

Private Sub
Picture1_MouseDown(Button As Integer, Shift As Integer, _
                               X
As Single, Y As Single)
' Remplit la zone correspondante du contrôle PictureBox
' avec la couleur courante de la palette.
Dim X1 As Long, Y1 As Long, lgRet As Long
X1 = CLng(X)
Y1 =
CLng(Y)
Picture1.FillStyle = 0
lgRet = ExtFloodFill(Picture1.hDC, X1, Y1, 0&, 0&)
Picture1.Refresh
End Sub

Retour à la liste des API

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr