Mettre en couleur une partie d'une form

Résolu
xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007 - 20 juin 2006 à 13:33
xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007 - 20 juin 2006 à 16:50
Bonjour,

je crée des parallèlogrammes avec line

je voudrais savoir comment je peux les remplir d'une autre couleur que celle utilisée sur ma form.
Merci

xav0021

17 réponses

xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007
20 juin 2006 à 16:50
ok, merci, j'adapte tout ça.

xav0021
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 juin 2006 à 14:12
Si tes praallèlogrames sont fermés, utilise la fonction de l'API Windows ExtFloodFill pour le remplir (cette fonction fait la même chose que le pot de peinture de paint).

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
20 juin 2006 à 15:36
Je crois que tu as un paramètre dans line qui te remplis ton parallélogramme

Jer
0
xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007
20 juin 2006 à 15:37
je connais pas ce paramètre...

xav0021
0

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

Posez votre question
JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
20 juin 2006 à 15:57
Me.Line (100, 100)-(2000, 2000), 1456, BF

(coin de base) - (coin opposé), couleur,B=rectangle F=rempli

voilà

Jer
0
xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007
20 juin 2006 à 16:01
sauf que si ton rectangle a effectué une rotation sur lui même, par ex de 25°, ton truc marche pas...

xav0021
0
JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
20 juin 2006 à 16:03
ah ben dans ce cas non

Jer
0
xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007
20 juin 2006 à 16:04
c'est ça le problème... c'est plus dur qu'il n'y parait.

xav0021
0
JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
20 juin 2006 à 16:05
C'est quoi exactement le but de ton truc. Dis m'en un peu plus, je trouverais peut-être une solution

Jer
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 juin 2006 à 16:18
Bah utilise la fonction que je te donne alors : elle te permettra de remplir n'importe quelle forme géométrique fermée, il suffit juste de connaître un point à l'intérieur de cette forme, et elle fera le reste !

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007
20 juin 2006 à 16:20
je dessine un rectangle et je lui fais faire une rotation par rapport à son centre. Je veux simplement savoir s'il est possible de colorer l'intérieur, même en ayant des côtés qui ne sont pas droits (comme ton ex, dont les côtés générés sont droits...)

xav0021
0
xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007
20 juin 2006 à 16:21
et tu utilises ExtFloodFill  comment? Le point que je connais, c'est le point d'intersection des diagonales X0 et Y0

xav0021
0
JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
20 juin 2006 à 16:23
Donne ton code de traçage des lignes

Jer
0
xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007
20 juin 2006 à 16:27
pour les lignes seulement:

  frmDessin.Line (Xa2, Ya2)-(Xb2, Yb2)
  frmDessin.Line (Xb2, Yb2)-(Xc2, Yc2)
  frmDessin.Line (Xc2, Yc2)-(Xd2, YD2)
  frmDessin.Line (Xd2, YD2)-(Xa2, Ya2)

xav0021
0
JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
20 juin 2006 à 16:43
Donne la partie qui te donne tes coorconnées aussi stp

Jer
0
xav0021 Messages postés 44 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 janvier 2007
20 juin 2006 à 16:44
un clic sur la form donne les coord Xa et Ya, les autres coord sont déduites lorsque je saisi la longueur et la largeur.

xav0021
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 juin 2006 à 16:45
Il faut vraiment tout vous faire, c'est dingue cà ! Alors qu'une toute petite recherche dans les codes du sites t'aurais permis de trouver la solution plus rapidement !

Dans la partie déclaration de ta feuille frmDessin :

Private 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
Private Declare Function CreateSolidBrush Lib "gdi32" Alias "CreateSolidBrush" (ByVal crColor As Long) As Long
Private Declare Function SelectObject Lib "gdi32" Alias "SelectObject" (ByVal hdc As Long, ByVal hObject As Long) As Long

Private Const FLOODFILLBORDER = 0

Dans ta fonction de tracé, rajoute ceci :

Dim lBrush As Long
Dim lOldBrush as Long

let lbrush = createsolidbrush(frmDessin.ForeColor)
let loldbrush = selectobject(frmdessin.hdc, lbrush)
call extfloodfill(frmdessin.hdc, 0, 0, frmDessin.Point(0, 0), FLOODFILLBORDER)
call selectobject(frmdessin.hdc, loldbrush)

A adapter à ton code bien sûr

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
Rejoignez-nous