S.O.S "Rotation" !!! (suite)

liban123
Messages postés
19
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
14 mars 2005
- 11 mars 2005 à 07:39
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
- 11 mars 2005 à 12:09
Salut!

Je tiens tout d'abord à te remercier fortement pour ta réponse et pour ton aide.

les fonctions que tu ma proposé m'aident effectivement a résoudre mon Pb, merci encor!

Dans la fin de ton message tu disais que tu parvenez a parametrer, de telle sorte que tu obtienne des bordures en rouge. je pourrais savoir comment t'y prend tu?

Merci (...Daniel)

Nab

5 réponses

cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
11 mars 2005 à 07:56
Pour continuer un sujet, utilise la zone "Répondre à ce message" en bas
de ton premier post plutot que de créer un nouveau message.

Plus quelqu'un qui n'a pas suivi, ce message est plutot incomprehensible.



message d'origine : http://www.vbfrance.com/forum.v2.aspx?ID=409323




<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
liban123
Messages postés
19
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
14 mars 2005

11 mars 2005 à 08:09
Je faisais reference au message " S.O.S "Rotation" !!!" que j'ai envoyer Hièr: le 10/03/2005 14:59:40 .

Si vous pouvez m'aider, ça serait géniale!

Au fait on m'a suggerer d'utiliser des instruction "polygone" pour dessiner des rectangle dont les coté ne sont pas forcément paralèlles au axes X et Y. mais je souhaiterai pouvoir choisir la couleur de l'interieur des rectangle et la couleur des contours.

Merci pour votre aide

Nab
0
cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
11 mars 2005 à 08:37
Il faut utiliser je crois la fonction FillRgn, c'est ce que fait
d'ailleur Gobillot dans sa réponse dans l'autre message, sur une forme
qui n'est pas parallèle aux axes et qui peut en plus etre un polygone
complexe (Gobillot a désiner un rectangle, mais en changeant ses
coordonnées on peut dessiner une forme diforme, ça marche). Mais pour
les couleurs?



Je ne peux pas t'en dire plus, je ne l'ai jamais utilisée. (Mais ça pourrais venir d'ici peu si je trouve le temps.)


Il faut peut etre regarder aussi du coté des api FloodFill et ExtFloodFill





<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
liban123
Messages postés
19
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
14 mars 2005

11 mars 2005 à 10:31
Voici le code qu'un interante m'a proposé:

"Option Explicit


Private Type COORD
x As Long
y As Long
End Type


Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As Any, ByVal nCount As Long) As Long
Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long


Const ALTERNATE = 1 ' ALTERNATE and WINDING are
Const WINDING = 2 ' constants for FillMode.
Const BLACKBRUSH = 4 ' Constant for brush type.


Private Sub Command1_Click()
Dim poly(4) As COORD
Dim NumCoords As Long
Dim hBrush As Long
Dim hRgn As Long

Picture1.Cls

NumCoords = 4


Picture1.ScaleMode = vbPixels

poly(0).x = 80
poly(0).y = 50
poly(1).x = 150
poly(1).y = 70
poly(2).x = 100
poly(2).y = 220
poly(3).x = 30
poly(3).y = 200

Polygon Picture1.hdc, poly(0), NumCoords


hBrush = GetStockObject(BLACKBRUSH)


hRgn = CreatePolygonRgn(poly(0), NumCoords, ALTERNATE)

If hRgn Then FillRgn Picture1.hdc, hRgn, hBrush

DeleteObject hRgn

End Sub"

Mon problème est que n'arrive pas a adapter ces quelques lignes de code à mon application...et je ne sais pas pourquoi!...je ne pense pas que ce doit etre compliquer mais je débute en Visual Basic et je sais que je ne maitrise pas touts, loin de la...!

Dans mon application, Mon objet se nomme PctDessin et mes point,A, B, C, D ont des coordonnées exprimé en mètres.

donc dans le code qui précède j'ai simplement changer le nom de mon objet: de PctDessin et j'ai suprimer le Scalemode car celui de mon objet est "User".

Cependant, le fait que dans mon objet PctDessin, le repère est : Y=0 vers le bas et X=0 c'est en bas à gauche...je ne sais pas si c'est cela qui jou...

En tout cas ce n'est pas une érreur de compilation car il ne me le signal pas.

Merci pour votre aide...mes question peuvent parrètre bête, mais je débute...

Merci encore

Nab
0

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

Posez votre question
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
11 mars 2005 à 12:09
pour les couleurs, j'avais fait varier la valeur de BLACKBRUSH, ce qui donne des effets différents.
pour la bordure il faut changer la propriété ForeColor de la PictureBox, mais je n'arrive toujours pas à avoir la couleur de remplissage.
pour les unités, il faut toujours les mettre en Pixels, avec l'origine (0,0) en haut à gauche.
si tu as mis une autre unité il faut faire la conversion toi même.

bon courage.

Daniel
0