Impression d'un controle

Résolu
Signaler
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
-
Bonjour a tous,



J'ai dans un Panel 2 Control persos. Et j'aimerais imprimer ces 2
Control l'un a coté de l'autre, ou alors ce qu'il y a dans le Panel (ce
qui reviendrait au meme).

Quelqu'un sait comment je peut faire pour imprimer le "contenu" d'un
objet Control ? Comment envoyer l'objet Graphics du Control vers
l'imprimante ?



Merci

Mx

5 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
98
Bon alors j'ai bien une manip pour récupérer une image : /library/en-us/gdi/pantdraw_3qwk.asp WM_PRINT

Exemple :
Bitmap bmp = new Bitmap(panel.Width, panel.Height);

Graphics bmpGraphics = Graphics.FromImage(bmp);
IntPtr bmpHdc = bmpGraphics.GetHdc();

Message msg = new Message();
msg.Msg = WM_PRINT;
msg.HWnd = panel.Handle;
msg.WParam = bmpHdc;
msg.LParam = new IntPtr(PRF_NONCLIENT | PRF_CLIENT | PRF_ERASEBKGND | PRF_CHILDREN | PRF_OWNED);
this.WndProc(ref msg);

bmpGraphics.ReleaseHdc(bmpHdc);
bmpGraphics.Dispose();

et tu n'as plus qu'a te servir du Bitmap :-)
Tu auras peut etre a jouer sur les parametres PRF_* suivant ce que tu veux.

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
98
Arf désolé j'ai oublier lol :

private int WM_PRINT = 0x0317;

private int PRF_CHECKVISIBLE = 0x00000001;
private int PRF_NONCLIENT = 0x00000002;
private int PRF_CLIENT = 0x00000004;
private int PRF_ERASEBKGND = 0x00000008;
private int PRF_CHILDREN = 0x00000010;
private int PRF_OWNED = 0x00000020;

On trouve ces valeurs dans les fichiers .h du PlatformSDK, en l'occurence ici :
"Header: Declared in Winuser.h"

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Merci coq.

J'ai essayé, mais il me jette avec le WM_PRINT (il faut le déclarer ? avec quelle valeur ? Un espace de nom spécifique ?)

J'ai cherché mais je dois pas regarder ou il faut.


Mx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Merci coq, je regarde ca !



Si ca marche, tu m'auras sauvé la vie 2 fois ce week end ^^

Mx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
55
Rien a dire, c'est impec.


T'es vraiment un animal impressionant ! Vraiment, chapeau pour toutes tes connaissances !



Mx