Classe de dessin (api) plus rapide que vb

Description

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

Codes Sources

A voir également

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.