Remplissage d'un polygone

filou26 Messages postés 37 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 16 juin 2008 - 26 mars 2004 à 15:40
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 26 mars 2004 à 16:10
je voudrais remplir un polygone régulier quelconque
(de 3 à 10 sommets par ex)
avec de la couleur
avec ou sans api
j'ai apris que l'api gdi32 fonction polygon faisait ça
mais voila c'est too much compliqué pour un débutant vb
voila ce que j'ai écrit

sur une form

private type pointapi
x as long
y as long
end type

dim pts(100) as pointapi
dim numpoints(10)
private declare function polypolygon lib "gdi32.dll"
(byval hdc as long,lppoint as point api,lppolycounts as long,byval ncount as long) as long

sur un énènement click sur un picturebox picture1
(ou j'ai récupéré les coordonnées des sommets de mon polygone aprés l'avoir dessiné à la souris)

je range ces coordonnées dans:

pts(0).x=ma coord x(0) :pts(0).y=ma coord y(0)
.......
pts(3).x=ma coord x(3) :pts(3).y=ma coord y(3)

puis je fais

picture1.forecolor=vbred
picture1.fillcolor=vbgreen
picture1.fillstyle=0

polypolygon picture1.hdc,pts(0),numpoints(0),1

(ma picturebox est en vbmillimeters)

ce code je l'ai pioché ça et là sur ce site mais j'ai du mal à le
comprendre complètement

à l'execution voila le message que j'ai:

point d'entrée polypolygon d'une DLL introuvable dans gdi32.dll

quelqu'un aurait il la gentillesse de me dépanner ?

merci VB

@+

1 réponse

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 mars 2004 à 16:10
Bonjour,

Tout d'abord, essaye avec cette déclaration de la fonction :
Declare Function PolyPolygon Lib "gdi32.dll" ( _
ByVal hdc As Long, _
lpPoint As POINTAPI, _
lpPolyCounts As Long, _
ByVal nCount As Long) As Long

Il faut respecter les types de données : ton "point api" n'est pas équivalent au POINTAPI !

Ensuite, cette fonction s'appuie sur les brosses et les crayons des fonctions GDI pour remplier ton polygone et non le fillstyle et le ForeColor de ton contrôle. Télécharge mon programme ProgOtoP API Viewer (suivre le lien de ma signature) et regarde la fonction CreateBrushIndirect, ou la fonction CreateSolidBrush (qui n'est pas encore dans la base de données du programme mais qui devrait pas tarder !) ainsi que la fonction CreatePen.

Enfin, les dimensions doivent être en pixels et non en millimetres : c'est la seule dimensions exploitable par les API.

Bon courage

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
Rejoignez-nous