|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 41 ![]() |
Bonjour
Dans une précédente discussion (20/05/2011), J'ai obtenu une modif de la classe clgdi32 qui me permettait de moduler la longueur des tirets, est-il possible d'avoir la même modif mais avec clGdiPlus cette fois. merci d'avance |
|
|
00
|
|
|
#2 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
Citation:
http://www.developpez.net/forums/d10...e/#post5989758
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 41 ![]() |
Bonjour thierry
J'ai refais mon prog avec clGdiPlus. dans notre précédente discussion,Il y a bien la modif clGdiPlus pour obtenir différents types de tirets; Donc ça, ça marche. Mais la modif pour obtenir différentes longueurs de tirets que tu m'a donnée est pour la clGdi32. De toutes façon, je ne trouve pas la ligne LnewPen = ExtCreatePen (Etc... que je doit remplacer donc je suppose que la modif pour clGdiPlus est <> de ClGdi32 A plus j'espère. |
|
|
00
|
|
|
#4 | |||||||||||||||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
Citation:
Ajouter la déclaration de GdipSetPenDashArray sous la déclaration de GdipSetPenDashStyle (il y a deux endroits différents) Code :
Code :
Code :
Code :
Code :
Code :
Code :
Code :
o.DrawLine 10, 10, 300, 10, vbBlue, 2, Array(20, 5, 10, 5) Ici avec un trait de 2 px de large ce sera 40px, 10px, 20px, 10px
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|||||||||||||||
|
|
10
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 41 ![]() |
Merci thierry
![]() j'ai pu récupérer mon prog avec la classe gdi+. C'est nickel J'attends maintenant que tu t' intéresses aux splines pour que je puisse l'utiliser dans mes schémas pour mes exercices de foot. Je surveille de prés tes prochaines productions A plus et encore merci. |
|
|
00
|
|
|
#6 | ||||||||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
Pour les cardinals :
Ajouter la déclaration de GdipAddPathCurve2I sous la déclaration de GdipAddPathBeziersI (il y a deux endroits différents) Code :
Code :
Code :
Private Function PrivDrawPolygon(pPoints As Variant, Optional pBackColor As Long = -1, Optional pPenColor As Long = 0, Optional pPenWidth As Long = 1, Optional pDash As Boolean, Optional pAlpha As Integer = 255, Optional PImage As String = "", Optional pRegion As String = "", Optional pBezier As Boolean, Optional pOnlyCreateRegion As Boolean, Optional pCardinal As Boolean, Optional pTension As Single) As Boolean Par : Code :
Code :
Code :
o.DrawCardinal Array(10, 10, 100, 100, 150, 10, 200, 100), 0.5 c'est une modif un peu à l'arrache mais ça marche pour les prochaines versions j'essayerai d'intégrer les pointillés personnalisés et les cardinales splines mais ça devient une usine à gaz
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
||||||||
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 41 ![]() |
Bonjour thierry
J'apprécie une fois de plus ta rapidité. Je n'ai pas encore testé la modif, mais il me faut absolument les différents pointillés. Un joueur qui se déplace sans ballon est représenté par des tirets espaces tirets. un joueur avec ballon, c'est tiret espace point . Les lignes continues sont pour les passes. J'ai même du faire de savants calculs (pour moi) pour dessiner des flèches au bout de chaque courbe de bezier (non prévu dans ta classe). Donc il me faut vraiment les pointillés. Mais rien ne presse et puis j'ai vraiment l'impression que tu es sur tous les fronts avec cet excellent site. Au fait,Y a t'il une façon de savoir si une réponse est ajoutée à une discussion particulière sans aller chaque fois la rechercher. A plus si tu as le temps. |
|
|
00
|
|
|
#8 | ||||||||||||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
pour retrouver tes discussions, va dans le tableau de bord (lien en haut à gauche) sinon pour les pointillés sur les courbes, il faut faire la même manip que pour les lignes, à savoir la modif de pDash en variant (sur la déclaration des fonctions PrivDrawPolygon, *DrawCurve, *DrawPolygon), et modifier PrivDrawPolygon comme PrivDrawLine pour l'appel à GdipSetPenDashStyle Pour les flèches, gdi+ le gère très bien. Je propose un ajout de 2 paramètres StartArrowLength et EndArrowLength : (pour simplifier la modif parce que les fonctions commencent à contenir beaucoup de paramètres...) Sous : Code :
Code :
Code :
Private Declare PtrSafe Function GdipSetPenEndCap Lib "gdiplus" (ByVal pen As LongPtr, ByVal endCap As Long) As Long Code :
Code :
Private Declare Function GdipSetPenEndCap Lib "gdiplus" (ByVal Pen As Long, ByVal endCap As Long) As Long Code :
dans PrivDrawPolygon (ou PrivDrawLine pour les lignes simples), ajouter sous le GdipSetPenDashStyle : Code :
Ensuite il suffit de définir StartArrowLength ou EndArrowLength (fonction de la taille du trait) avant de dessiner : Code :
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
||||||||||||
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 41 ![]() |
rebonjour
C'est Ok Pour la spline, par contre la fleche ne s'affiche pas. J'ai bien placé dans privDrawpolygone et privdrawline sous "GdipSetPenDashStyle lPen, pDash" le code que tu m'a donné, mais comme ça parle de Pdash, je me demande si c'est le bon endroit . Peux-tu me confirmer SVP s'il n'y a pas d'erreur?A plus |
|
|
00
|
|
|
#10 | |||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
Citation:
Code :
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|||
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 41 ![]() |
Merci thierry
Ok pour la spline avec la flèche Je mets tout ça comme il faut et peut être qu'on pourrait en faire un tutoriel. D'autres seraient peut être intéressé. A plus |
|
|
00
|
|
|
#12 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
Citation:
ensuite il faudrait que j'intègre les fonctionnalités de pointillés peronnalisés et de flèches aux classes mais en ce moment je réfléchis à tout ré-écrire parce que ça devient trop difficile à maintenir (et sans doute à utiliser vu la multiplication des paramètres et propriétés pour certaines fonctions)
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 41 ![]() |
Bonjour thierry
Je vais mettre mon application au propre car je dois faire le tri entre tes améliorations et mes erreurs. Elle ne réagit pas toujours comme je voudrais, mais ça je commence à maitriser. Ensuite j’essaierai de faire quelque chose de simple à mettre sur le forum. Pour les flèches, c'est vrai que ce triangle n'est pas terrible (j'utilise une autre pointe avec world pour mes schémas) donc si tu fais la modif, je l'utiliserai volontier. Peut être pourras-tu me prévenir par mail? Et puis bon courage si tu refais ta classe A plus
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com