Voici une classe que je suis en train de faire (elle n'est pas finie), mais je la met a disposition pour avoir vos avis et idées.
Cette classe permet de faire du dessin comme dans VB (lignes cercles points textes etc..) mais en utilisant les apis.
un autre avantage, c'est que le dessin ne se fait pas directement sur la zone cible (par exemple une form ou un picture), mais en mémoire, et il suffit d'appeler une fonction pour l'afficher sur la zone cible. Cette methode a pour gros avantage d'eviter les scintillement typique VB.
C'est encore une beta, il n'y a pour l'instant que les fonction pour tracer des lignes, rectangles et texte (pas d'alignement pour l'instant)
j'attend vos remarques :)
Source / Exemple :
'voici un exemple de code d'utilisation de la classe :
Dim Cl As New DrawClass
Private Sub Form_Load()
'creer l'image
Cl.newImage Me.ScaleWidth / 2, Me.ScaleHeight / 2, Cl.GetSystemColor(vbButtonFace), 1
'modifi la police
Cl.Font.Size = 20
Cl.Font.Name = "Comic Sans ms"
End Sub
Private Sub Form_Paint()
'affiche l'image sur la form
Cl.PaintTo Me.hdc, 0, 0
Cl.DrawWidth = 1
End Sub
Private Sub Form_Resize()
'redimensionne à la fenetre
Cl.ResizeImage Me.ScaleWidth, Me.ScaleHeight
'dessine
Cl.drawRect 0, 0, Me.ScaleWidth, Me.ScaleHeight / 2, 0, RGB(0, 200, 0), vbSolid, vbDiagonalCross
Cl.drawRect 0, Me.ScaleHeight, Me.ScaleWidth, Me.ScaleHeight / 2, 0, RGB(200, 200, 0), vbDashDotDot, vbUpwardDiagonal
Cl.drawRect Me.ScaleWidth / 2, 0, Me.ScaleWidth, Me.ScaleHeight / 2, 0, RGB(0, 0, 200), vbSolid, vbFSSolid
Cl.drawRect Me.ScaleWidth / 2, Me.ScaleHeight, Me.ScaleWidth, Me.ScaleHeight / 2, 0, RGB(200, 0, 0), vbDashDotDot, vbUpwardDiagonal
Cl.DrawText "Voici du texte", 5, 5, True
Cl.DrawText "Voici du texte non transparent", 5, 100, False, 255
'envoi sur le picture
Cl.PaintTo Me.hdc, 0, 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
'ne pas oublier si possible !
'sinon de la memoire reste occupée pour rien
'donc eviter de fermer VB avec le STOP, fermer la fenetre plutot
Cl.CloseImage
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.