filou26
Messages postés37Date d'inscriptionmercredi 26 novembre 2003StatutMembreDernière intervention16 juin 2008
-
26 mars 2004 à 15:40
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDerniè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)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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.