Faire une fonction de paint

Résolu
cs_fdo
Messages postés
5
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
31 juillet 2009
- 16 mars 2007 à 11:48
cs_fdo
Messages postés
5
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
31 juillet 2009
- 26 mars 2007 à 06:08
bonjours,
Jaimerais en cliquant sur un pixel faire le saut de peinture comme paint
sa de facon rapide sans passer pixel par pixel
Merci

9 réponses

drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
16 mars 2007 à 13:09
En réponce à ton MP, je t'avais laisser un exemple sue l'autre post mais il a été supprimé, le voici: (mais je n'ai rien d'autre à par celui-là)

Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long


Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long


Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long


Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long


Private Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long


Const FLOODFILLBORDER = 0 ' Fill until crColor& color encountered.


Const FLOODFILLSURFACE = 1 ' Fill surface until crColor& color not encountered.


Const crNewColor = &HFFFF80


Dim mBrush As Long


Private Sub Form_Load()


'KPD-Team 1999


'URL: http://www.allapi.net/


'E-Mail: KPDTeam@Allapi.net


'Create a solid brush


mBrush = CreateSolidBrush(crNewColor)


'Select the brush into the PictureBox' device context


SelectObject Picture1.hdc, mBrush


'API uses pixels


Picture1.ScaleMode = vbPixels


End Sub


Private Sub Form_Unload(Cancel As Integer)


'Delete our new brush


DeleteObject mBrush


End Sub


Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)


'Floodfill...


ExtFloodFill Picture1.hdc, x, y, GetPixel(Picture1.hdc, x, y), FLOODFILLSURFACE


End Sub
3
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
16 mars 2007 à 11:56
Deuxième discussion, avec un titre différent, pour le même sujet !!!
N'ouvre qu'une seule fois, s'il te plait.
1) en admettant que "saut" soit "seau" (sinon ce serait tout le contraire) :
tu as déjà eu ta réponse, non ?
C'est par utilisation de la Fonction ExtFloodFill de la librairie GDI32 de l'API de Windows que tu y parviendras .
0
NHenry
Messages postés
14927
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
162
16 mars 2007 à 11:58
Bonjour


Doublon avec http://www.vbfrance.com/infomsg_DESSIN_904840.aspx ?

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
16 mars 2007 à 11:59
Salut! Aller on prend les mêmes et on recommence! lol!

Declare Function ExtFloodFill Lib "gdi32" Alias "ExtFloodFill" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long

· hdc
Identifies a device context.


· nXStart
Specifies the logical x-coordinate of the point where filling is to begin.


· nYStart
Specifies the logical y-coordinate of the point where filling is to begin.


· crColor
Specifies the color of the boundary or of the area to be filled. The interpretation of crColor depends on the value of the fuFillType parameter.


· fuFillType
Specifies the type of fill operation to be performed. It must be one of the following values:
FLOODFILLBORDER
 The fill area is bounded by the color specified by the crColor parameter. This style is identical to the filling performed by the FloodFill function.
FLOODFILLSURFACE
 The fill area is defined by the color that is specified by crColor. Filling continues outward in all directions as long as the color is encountered. This style is useful for filling areas with multicolored boundaries.

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry
Messages postés
14927
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 mai 2022
162
16 mars 2007 à 12:05
Bonjour


Y a rien d'intégré au framwork : [infomsgf_VB-NET-VB-2005_40.aspx VB.NET et VB 2005] ?

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
16 mars 2007 à 13:03
Monjour NHenry,

Si tel était le cas, celà serait la démonstration absolue de la non nécessité de telles lourdeurs pour éviter si peu....
car vraiment, tout est tellement simple avec cette fonction de l'Api de Windows...
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
16 mars 2007 à 14:29
S'il le fallait vraiment, je déposerais une source/démonstration qui regroupe :
- l'effet "seau" (remplacement des pixels contigus de même couleur)
- le remplacement d'une même couleur par une autre sur l'ensemble (pixels contigus ou non)
- l'utilisation de la pipette pour le choix de la couleur à remplacer ou de celle de remplacement, pîpette assortie d'un petit outil "de confort" (la couleur est visualisée en même temps)
- utilisation de la "seringue" pour injecter une couleur (avec, comme pour la pipette, une visualisation des couleurs, tant à remplacer qu'à injecter)
- l'utilisation d'un menu de choix de couleurs (si l'on préfère celà à la pipette)
- et d'autres petits machins accessoires qui, au passage, répondraient à une question posée aujourd'hui par un autre forumeur, en ce qui concerne la personnalisation temporaire des curseurs.

Pour les VB.Netistes, il suffirait alors de transposer tout celà (écrit en VB, vers du VB.Net).

Je ne ferai toutefois pas ce dépôt (qui me parait bien peu utile) si on n'en exprime pas le voeu (je ne veux pas encombrer pour rien...)
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
16 mars 2007 à 17:54
J'ai finalement procédé à ce dépôt, car cette source m'a été demandée par MP.
Que tous en profitent, alors... ce sera mieux ainsi.
0
cs_fdo
Messages postés
5
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
31 juillet 2009

26 mars 2007 à 06:08
sa marche le seul probleme c'est qu'au bout d'une centaine l afonction ne veut plus marcher
0