Impresion en C++

10/03/2005 - 23:38 por Mario | Informe spam
Hola

Tengo una aplicacion en c++ .NET, pero ahora necesito
imprimir algunos de los datos que he capturado, alguien
conoce cual es el objeto o clase que maneja las impresoras
y su configuracion?

gracias

Mario Garzon

Preguntas similare

Leer las respuestas

#6 Rodrigo Corral [MVP]
11/03/2005 - 18:11 | Informe spam
Si estas en una aplicación basada en documentos esto cambia un poco, por que
el propio ondraw de la vista del documento se llama para imprimirlo. Lee:
http://msdn.microsoft.com/library/d...s_done.asp


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#7 Sergio
11/03/2005 - 18:20 | Informe spam
Rodrigo Corral [MVP] escribió:
Si estas en una aplicación basada en documentos esto cambia un poco, por que
el propio ondraw de la vista del documento se llama para imprimirlo. Lee:
http://msdn.microsoft.com/library/d...s_done.asp





Ni me había parado a pensar en eso!! Lo había copiado y pegado del
programa en el que estoy ahora, que esta basado en dialogos, vaya
despiste por mi parte :(
Respuesta Responder a este mensaje
#8 Mario
12/03/2005 - 00:41 | Informe spam
muchas gracias por el código, me fue de gran ayuda ya que
tambien estoy trabajando en una aplicacion basada en dialogos

el problema que se me presentó es que no he podido imprimir
un bitmap, estoy tratando de utilizar la funcion
memDC.DrawState, pero no he podido;

aqui esta el codigo con el que estoy cargando el bitmap

BitHandle = LoadImage(NULL, sPaint, IMAGE_BITMAP, 0,0,
LR_LOADFROMFILE);

Hbmp = (HBITMAP) BitHandle; //Hago un cast ya que LoadImage
/ //me devuelve un HANDLE.
memDC.DrawState(ptA,bmpFoto.GetBitmapDimension(),
bmpFoto,DST_BITMAP,NULL);


pero solamente imprime una pequeña parte del bitmap

Espero su respuesta, gracias
Respuesta Responder a este mensaje
#9 Mario
12/03/2005 - 00:47 | Informe spam
en el codigo anterior corrijo la linea siguiente

memDC.DrawState(ptA,bmpFoto.GetBitmapDimension(),
bmpFoto,DST_BITMAP,NULL);

esta la utilizé para hacer una prueba que no funcionó para
nada, la línea que utilizo realmente es:

memDC.DrawState(ptA,sizeof(bm),Hbmp,DST_BITMAP,NULL);
Respuesta Responder a este mensaje
#10 Sergio
14/03/2005 - 08:43 | Informe spam
Mario escribió:
en el codigo anterior corrijo la linea siguiente

memDC.DrawState(ptA,bmpFoto.GetBitmapDimension(),
bmpFoto,DST_BITMAP,NULL);

esta la utilizé para hacer una prueba que no funcionó para
nada, la línea que utilizo realmente es:

memDC.DrawState(ptA,sizeof(bm),Hbmp,DST_BITMAP,NULL);





Pues no se decirte si el código esta bien o mal, ya que yo para
mostrar/imprimir imágenes uso CPicture. El caso es que para que lo que
imprimas te salga al tamaño deseado, al menos yo lo tengo que hacer así,
tienes que encontrar la relación entre la resolución de la impresora y
la pantalla.

int prx = memDC.GetDeviceCaps(HORZRES);
int pry = memDC.GetDeviceCaps(VERTRES);

CRect rect;
GetClientRect(&rect);
float rtx = (float) prx / rect.Width();
float rty = (float) prx / rect.Height();

Y apartir de aquí usar rtx y rty para las coordenadas:

memDC.DrawState(CPoint(ptA.x * rtx,ptA.y * rty),sizeof(bm) *
rtx,Hbmp,DST_BITMAP,NULL);

Algo así, mira a ver si te sirve.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida