begin process at 2012 02 16 22:53:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > VIRTUALDC ==> DESSINER SANS PICTUREBOX (BITBLT, PRINT, GRADIENT, ELLIPSE...) AVEC GDI32

VIRTUALDC ==> DESSINER SANS PICTUREBOX (BITBLT, PRINT, GRADIENT, ELLIPSE...) AVEC GDI32


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :hdc, bitblt, bitmap, virtualdc, gdi Niveau :Initié Date de création :25/06/2007 Date de mise à jour :25/06/2007 16:55:40 Vu / téléchargé :7 129 / 947

Auteur : violent_ken

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Salut, ce code est une classe qui permet de dessiner "en mémoire", donc en se passant d'une picturebox, puis d'appliquer ensuite notre dessin sur un contrôle grâce à son hDC.

L'avantage est évidemment la performance (bien plus rapide que de faire Picture1.Print....).

Cette classe comporte les fonctions suivantes :

- définition d'un Pen pour les dessins
- définition d'un Brush pour les dessins
- CreateMyDC (création du DC)
- PaintToDC (permet d'afficher l'image créée dans un controle)
- DrawImageToVirtualDC (permet d'ajouter une image dans le DC virtuel)
- DrawText (affichage de texte)
- DrawLine (traçage d'une ligne)
- DrawGradient (traçage d'un gradient)
- FillArea (remplissage d'une zone)
- InvertArea (inversion d'une zone)
- CreateFromPictureBox (création d'un DC virtuel directement depuis une PictureBox)
- Cls (efface)
- SetPixel (change la couleur d'un pixel)
- GetPixel (récupère la couleur d'un pixel)
- DrawFocusRect (trace un rectangle de focus)
- DrawEllipse (trace une ellipse)
- DrawRectangle (trace un rectangle)
- DrawRoundRectangle (rectangle à bords arrondis)
- DestroyDC (supprime le DC)



Cela a bien évidemment pour but d'optimiser les dessins (je l'ai fait pour mes vkUserControls).


Je tiens à préciser que je n'ai pas copié/volé le travail de PCPT !!
Je me suis inspiré de son travail (solide) pour débuter dans le domaine de GDI et réaliser ce que je voulais (ensemble complet de fonctions pour dessiner "en mémoire").
Cette source est donc issue du travail de PCPT (http://www.vbfrance.com/code.aspx?ID=43226), dont j'ai repris les fonctions importantes (hDCToPicture et CreateBitmapPicture). Je remercie évidemment PCPT !


Je suis novice dans l'utilisation de GDI, donc il peut manquer des optimisations et avoir des bugs ! N'hésitez pas à commenter et à noter ;)
@+


 Conclusion

Cela a bien évidemment pour but d'optimiser les dessins (je l'ai fait pour mes vkUserControls).
Cette source est issue du travail de PCPT (http://www.vbfrance.com/code.aspx?ID=43226), dont j'ai repris les fonctions importantes (hDCToPicture et CreateBitmapPicture).


Je suis novice dans l'utilisation de GDI, donc il peut manquer des optimisations et avoir des bugs ! N'hésitez pas à commenter ;)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

25 juin 2007 16:55:41 :
viré un fichier inutile dans le zip

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) UTILITAIRE DE SANITIZATION DES DISQUES DURS/FICHIERS (SUPPRE...
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLE SHUTDOWN SCHEDULER : ARRÊTS PLANIFIÉS (LOCAL OU REMOT...
Source avec Zip Source .NET (Dotnet) COMMENT DÉMARRER UN PROCESSUS SUR PC DISTANT DE MANIÈRE CACH...
Source avec Zip Source avec une capture Source .NET (Dotnet) YET ANOTHER (REMOTE) PROCESS MONITOR
Source avec Zip Source avec une capture Source .NET (Dotnet) COMMENT DÉTECTER LES PROCESSUS CACHÉS (VIRUS, ROOTKITS...) +...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) VB10 - CRÉER VOS PROPRES CALQUES SUR UNE IMAGE par Duke49
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN GIF ANIMÉ par Le Pivert
Source avec une capture GRAPH PHP COURBE DE CHARGE par s.defaye
Source avec Zip Source avec une capture BOULE DE CRISTAL par BLUEBIBUBBLE
VB6 - DÉPLACEMENT D'UN CONTRÔLE SUR UN SEGMENT DE DROITE DÉL... par ucfoutu

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) MERGEIMAGES par Le Pivert
Source avec Zip Source avec une capture AFFICHEUR TYPE DIGITAL AVEC AVEC L'API SETBITMAPBITS par oeildedinde
Source avec Zip Source avec une capture Source .NET (Dotnet) EDITEUR DE MAP RPG (LIEK) par staron
Source avec Zip Source avec une capture Source .NET (Dotnet) EFFECT OSCILLOSCOPE/CARDIOGRAPH USING VB.NET par gpanario1
Source avec Zip Source avec une capture CLASSE DE GESTION DE SPRITE ET CLASSE BITMAP EN GDI par jmsebaux

Commentaires et avis

Commentaire de romagny13 le 25/06/2007 19:42:43

Bon c'est quand qu'on voit une source de Violent_ken sur CShapfr.com en .net 2.0 :p ?

Commentaire de violent_ken le 25/06/2007 20:41:22

lol ;)

Faudrait que je quitte ce très cher VB6.... et çà c'est dur ;)
@+

Commentaire de Charles Racaud le 25/06/2007 21:30:14

en DotNet, ha non pas ca. J'en suis d'ailleurs un peu déçu. Je te verrai beacoup mieux en C/C++.

Bonne métrise des api, beacoups de commentaires.
Très bien, comme d'habitude ^^
__
Kenji

Commentaire de EBArtSoft le 25/06/2007 21:46:46 administrateur CS

Bien (ouai allez y passez tous a .net c'est trop bien :p )

Commentaire de BruNews le 25/06/2007 23:22:22 administrateur CS

ok EB, je vais dotnettifier aussi.
Enfin, dès que j'aurai le temps...

Commentaire de violent_ken le 25/06/2007 23:42:22

Héhé, j'ai dit "Faudrait que je", ce qui veux dire que "pour aller sur CShapfr.com", "faudrait que je" passe au .Net ;)

Mais ce n'est pas à l'ordre du jour ;) Quand je quitterais ce cher VB6 (si çà arrive ^^), ce sera surement pour le C(++).

Merci pour les commentaires !

@+

Commentaire de Renfield le 26/06/2007 09:50:19 administrateur CS

code survollé

penses a mettre des ByVal de temps à autres...

DrawImageToVirtualDC : pas besoin de faire une copie du Bmp

DrawLine:
- T te sert a rien... passes un ByVal 0&
- pourrais etre pas mal de rendre optionnelles deux coordonnées... permettrais de chainer :
    Drawline 0,0,50,50
    DrawLine 100,50
    Drawline 150,75

au lieu de  :

    Drawline 0,0,50,50
    DrawLine 50,50,100,50
    Drawline 100,50,150,75


SetPixel... utilises SetPixelV, plus rapide
ou manipules les bits de ton DIB :p





Commentaire de violent_ken le 26/06/2007 09:55:46

Salut,

-"penses a mettre des ByVal de temps à autres" ==> Il est vrai que je n'ai mis aucun Byval (bizarre, d'habitude je le fais ?). Mais est-ce grave (le Byval étant plus long car çà copie en mémoire la variable) puisque je ne manipule pas (je pense) les paramètres directement ?

-"DrawImageToVirtualDC : pas besoin de faire une copie du Bmp" ==> ok !

-"DrawLine...." ==> Ok je note.

-"SetPixel... utilises SetPixelV, plus rapide" ==> Ok, je le ferais ;)

-"ou manipules les bits de ton DIB :p" ==> ahah, lol, je ne maitrise pas suffisement ;)

Merci pour les conseils, @+

Commentaire de BruNews le 26/06/2007 17:10:01 administrateur CS

ByVal ne crée une copie que pour un tableau.
Si c'est valeur simple c'est au contraire plus rapide pour la fonction recevante, pas de pointeur à déréférencer.

Commentaire de violent_ken le 26/06/2007 17:18:53

Merci pour cette remarque, je l'ignorais.
@+

Commentaire de BruNews le 26/06/2007 17:28:43 administrateur CS

Viens vite au natif, seulement avec du vrai code que tu te rendras compte de ces évidences.

Commentaire de candyraton le 09/12/2008 13:33:35

Bonjour et bravo violent (tu porte bien ton nom je trouve) pour toutes tes excellentes sources.

Avec PCPT, vous êtes à 2 doigt de nous finir le contrôle dont tout le monde rêve:
le richRECTbox!
myrrb.picture
myrrb.line
myrrb.bordure = false
myrrb.left
myrrb.height
myrrb.text (pourquoi pas (tout simple genre printdc))
myrrb.titrebar = true
myrrb.titre = "mon rrb non invisible"
event myrrb_mouvemouss
event myrrb_wheelup    
event myrrb_out
event clavier (pourquoi pas)
event focus (tant qu'à faire)
...
   genre window mais sans les restrictions de windows.
Le contrôle polyvalent que l'on utilise pour tout.
(jusqu'au simple click dans une zone predefinie)

fini les labels, les picturebox et autres contrôles difficilement transportables.

Pourtant, ce contrôle n'est qu'un carré vide.
(vide mais pas creux!)

Et on peut encore lui ajouter 2-3 fonctionnalités genre myrrb.capture ou myrrb.hdlefenetredudessous...

   Vous y avez déja penser n'est pas?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

SVP, rien que Bitblt en .net , c'est impossible??? [ par Fildomen ] salut.Est-ce-que avec la TECHNOLOGIE .net , on peut même pas utiliser l'api bitblt (Parce-qu'il n y a pas de picture1.hdc). je veux pas utiliser des e BitBlt sous VBA? [ par 3dflix ] Bonjour,je souhaite utiliser l'api BitBlt en vba excel pour copier une partie de mon Image1(imagebox) dans mon Image2(Imagebox).x = BitBlt(Image2.hDC, Utilisé GDI+ sous vb6 [ par schlen ] Bonjour, je cherche un moyen d'utilisé GDI+ sous VB6, j'ai beau chercher, je ne trouve pas! De plus il me faudrai plus particulierement la fonctiont B décodage image bitmap [ par arnovb ] bonjour je cherche un programme en visual basic qui me permettrait de dire si une zone d'une image bitmap est blanche ou pas quelqu'un peut il m'aider bitmap vers texte [ par arnovb ] bon j'ai cherché sur le forum mais je n'ai pas trouvéje voudrai ouvrir un bitmap en mode texte pour aller tester la couleur de certains pixel à l'inté .NET 2.0 : fichier image verrouillé [ par TigerFab ] Bonjour,J'ai un problème lorsque j'utilise system.drawing.bitmap(fichier)par ex :Dim bmp As<font c Shadow en GDI+ [ par peug ] Avé !je cherche à créer une ombre (dégradé+transparence) derrière un rectangle (dessiné via API classic)J'ai trouvé des codes fabuleux (ps : cherchez composant bitmap [ par marouane2010 ] Bonjour,priere de m'indiquer le composant necessaire en visual basic permettant d'utiliser le controle Bitmap, car je veux faire un tratement sur des Bitblt Excel [ par cheyenne ] Bonjour à Tous,Mon problème est le suivant :Sous Excel dans une UserForm j'ai une Image1 représentant diverses icônes. Lorsque je survole l'image le n Diminuer la resolution d'une image (dpi) [ par Syphou ] Bonjour;Jai une fonction qui va chercher 28 000 images d'articles sur le net. Je doit les enregistrer sur un serveur, elles doivent etre carrée et etr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales