Impression d'un controle

Résolu
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 30 janv. 2005 à 13:53
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 30 janv. 2005 à 17:00
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
30 janv. 2005 à 15:33
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#
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
30 janv. 2005 à 16:26
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#
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
30 janv. 2005 à 16:22
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
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
30 janv. 2005 à 16:28
Merci coq, je regarde ca !



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

Mx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
30 janv. 2005 à 17:00
Rien a dire, c'est impec.


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



Mx
0
Rejoignez-nous