begin process at 2012 05 29 06:53:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

Impression sur imprimante


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Impression sur imprimante

mardi 23 août 2011 à 18:31:46 | Impression sur imprimante

ArthurAuguste

Membre Club
Bonjour,
Il y a forcément quelque chose que je n'ai pas encore bien compris concernant l'utilisation des devices contextes et des bitmaps.
Pourquoi ma solution 1 fonctionne et pourquoi ma solution 2 ne marche pas (j'édite une page blanche) ?
Merci
****************************************
********** Solution 1 (qui marche): ********** (prd.hDc est le device contexte de l'imprimante)
larg=GetDeviceCaps(prd.hDC, HORZRES);
haut=GetDeviceCaps(prd.hDC, VERTRES);
SetRect(&rect,larg*marges,haut*marges,larg-(larg*marges*2),haut-(haut*marges*2));
if ( StartDoc( prd.hDC, &di ) > 0 )
{
StartPage( prd.hDC );
Ellipse(prd.hDC,0,0,larg,haut);
DrawText(prd.hDC,"Ceci est une page de test",-1,&rect,DT_SINGLELINE | DT_VCENTER | DT_CENTER);
EndPage( prd.hDC );
EndDoc( prd.hDC );
}
******************************************
********** Solution 2 (qui ne marche pas): ****************
larg=GetDeviceCaps(prd.hDC, HORZRES);
haut=GetDeviceCaps(prd.hDC, VERTRES);
SetRect(&rect,larg*marges,haut*marges,larg-(larg*marges*2),haut-(haut*marges*2));
hDCmem = CreateCompatibleDC(prd.hDC);
Ellipse(hDCmem,rect.left,rect.top,rect.right,rect.bottom);
DrawText(hDCmem,"Ceci est une page de test",-1,&rect,DT_SINGLELINE | DT_VCENTER | DT_CENTER);
if ( StartDoc( prd.hDC, &di ) > 0 )
{
StartPage( prd.hDC );
BitBlt(prd.hDC,0,0,larg,haut,hDCmem,0,0,SRCCOPY); // copy hdcMemoire -> prd.hDC
EndPage( prd.hDC );
EndDoc( prd.hDC );
}
DeleteDC( hDCmem );
mercredi 24 août 2011 à 08:14:08 | Re : Impression sur imprimante

ArthurAuguste

Membre Club
Bonjour,
Bon j'ai dans ma solution 2 rajouté les deux instructions ci-dessous anotées et cette fois ci j'obtiens quelque chose.
Mais au lieu d'obtenir un simple contour d'ellipse avec le texte "Ceci est une page de test" au milieu (c'est ce que je veux),
j'obtiens une ellipse coloriée en blanc à l'intérieur et en noir à l'extérieur sur toute la page.
Ce qui fait que le micro a mouliné pendant 5mn avant de sortir quelque chose et le texte "page de test" n'apparaît pas, je suppose qu'il est caché par l'ellipse.
Etait-ce bien ce qu'il fallait faire ? Et n'est-il pas possible d'obtenir seulement un contour avec la solution 2 ?
(prd.hDc est le device contexte de l'imprimante)

larg=GetDeviceCaps(prd.hDC, HORZRES);
haut=GetDeviceCaps(prd.hDC, VERTRES);
SetRect(&rect,larg*marges,haut*marges,larg-(larg*marges*2),haut-(haut*marges*2));
hbm=CreateCompatibleBitmap(prd.hDC, rect.right, rect.bottom); // **** 1ère instruction rajoutée ****
hDCmem = CreateCompatibleDC(prd.hDC);
SelectObject(hDCmem, hbm); // **** 2ème instruction rajoutée ****
Ellipse(hDCmem,rect.left,rect.top,rect.right,rect.bottom);
DrawText(hDCmem,"Ceci est une page de test",-1,&rect,DT_SINGLELINE | DT_VCENTER | DT_CENTER);
if ( StartDoc( prd.hDC, &di ) > 0 )
{
StartPage( prd.hDC );
BitBlt(prd.hDC,0,0,larg,haut,hDCmem,0,0,SRCCOPY); // copy hdcMemoire -> prd.hDC
EndPage( prd.hDC );
EndDoc( prd.hDC );
}
DeleteDC( hDCmem );

Merci


Cette discussion est classée dans : rect, hdc, haut, larg, prd


Répondre à ce message

Sujets en rapport avec ce message

Impression formatée [ par goutbouyo ] Salut,Je viens de réussir à imprimer uen edit box(grace aux sources de ce site), mais le problème c'est que tous les mots s'affichent à la suite ...J' gros tableau 3D typedef int Gd_Tab[longit][haut][larg]; [ par anisotrope ] Bonjour,je voudrais manipuler un "gros" tableau d'entiers a 3 dim.je defini un typedef : typedef int Gd_Tab[longit][haut][larg];avec longit = 10;haut dessiner dans une zone Picture [ par pidoumtimo ] Bonjour a tous.Je possede deux tableau de valeurs et j'aimerai tracer la courbe issue de ces deux tableau dans une zone Picture.Malheureusement mon co problème d'impression [ par jeremsDev ] Voila en fait je souhaite imprimer une liste de noms de fichiers contenu dans un editle problème c que lorsque j'imprime les noms ne sont pas imprimer problème avec bitblt [ par gregory6 ] GringoBonjour,je suis développeur débutant sous visual C++ et les MFC. Je cherche à afficher le contenu d'un répertoire sur une page graphique que je Update screen win32 [ par MoDDiB ] Voilà j'ai un problème avec le rafraichissement de ma fenêtre en win32 je m'explique : je dessine une ligne à l'aide de :             HDC      &nbsp pr d'objet GDI qui augmente, help [ par gege1024 ] CPaintDC hdc(this);HBITMAP bit;BITMAP bitmap;CRect rect;GetClientRect(&rect);  bit= (HBITMAP) LoadImage (NULL,fic_img_abs,IMAGE_BITMAP,0,0,LR_DEFAULTS Il manque une partie de l'image (fond d'une fenêtre) [ par papi2 ] Bonjour,Quand je peux mettre l'image entière, elle ne prend pas les dimentions de MAXIMIZE (par exemple).Avec ce code:Je n'ai qu'une portion de l'imag Fonction SetWoldTransform () : transformations graphiques [ par _michel ] Je suis amené à me servir de la fonction SetWorldTransform (), qui permet les transformations graphiques, mais même en recopiant l'exemple de l'aide W freeimage [ par valerymb ] salut à tous. J'ai un petit problème à vous soumettre.voilà. J'ai une image non sauvegardée sur le disque que j'affiche en utilisant les mfc (hdc, hbi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,437 sec (3)

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