Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Problemas de impresion!!! URG!!!

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

Problemas de impresion!!! URG!!!

Notapor emanuelgcy el Mar Dic 06, 2005 2:45 pm

Hola:
como estan?
necesito por favor saber de que manera imprimir una hoja con una cantidad de datos CString y sumando a toda esta hoja una imagen.
Por favor si alguien tiene un ejemplo o unas clases que lo hagan les agradeceria.

Muchas gracias por todo!!!
Excelente foro.
Saludos,
Emanuel.
emanuelgcy
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 113
Registrado: Vie Mar 18, 2005 5:52 pm

En MFC

Notapor emanuelgcy el Mar Dic 06, 2005 3:29 pm

Disculpas que no les aclare pero el desarrollo es en MFC.

Mil disculpas,
Saludos,
Emanuel.
emanuelgcy
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 113
Registrado: Vie Mar 18, 2005 5:52 pm

Respuesta

Notapor emanuelgcy el Mié Dic 07, 2005 10:30 am

Hola:
les paso un codigo que encontre ayer que responde a mi pregunta:
Código: Seleccionar todo
   
void CADlg::OnOK()
{
CPrintDialog dlgA(FALSE, PD_ALLPAGES,this);
if (dlgA.DoModal()==IDOK)
{
        CDC dcPrint;
        dcPrint.Attach(dlgA.GetPrinterDC());
        DOCINFO myPrintJob;
        myPrintJob.cbSize = sizeof(myPrintJob);
        myPrintJob.lpszDocName = "MiTareaDeImpresion";
        myPrintJob.lpszOutput= NULL;
        myPrintJob.lpszDatatype = NULL;
        myPrintJob.fwType = NULL;
                       
        //empezar el documento de impresion
         if(dcPrint.StartDoc(&myPrintJob)>=0){
   //Empezar una pagina
   dcPrint.StartPage();
                //Empezar a dibujar
   dcPrint.TextOut(100,100, "hola");
   
   //Mandar la pagina
   dcPrint.EndPage();

   //Cerrar el documento
   dcPrint.EndDoc();
        }
//borrar el contexto de dispositivo de impresora
dcPrint.DeleteDC();
}
CDialog::OnOK();
}

Me gustaria a este codigo agregar imagenes. Pero no se con que metodo hacerlo. Les agradeceria si alguien sabe como hacerlo.

Saludos,
Emanuel.
emanuelgcy
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 113
Registrado: Vie Mar 18, 2005 5:52 pm

Re: Respuesta

Notapor latindeveloper el Jue Dic 08, 2005 6:05 pm

Para pintar imagenes:

Código: Seleccionar todo

  CDC dcBMP;                  // DC en memoria para el BMP
  dcBMP.CreateCompatibleDC(&dcPrint);
  CBitmap m_bmp; // Es recomendable que sea miembro
               // de la clase y sea cargado una sola vez
  m_bmp.LoadBitmap(IDB_ALGUNBITMAP);

  CBitmap* pTmp = (CBitmap*) dcBMP.SelectObject(&m_bmp);

CSize sz = m_bmp.GetBitmapDimension();

  //Aqui se pinta el bitmap en la posicion [x] [y]
  dcPrint.BitBlt([x],[y],sz.cx, sz.cy, &dcBMP, 0, 0, SRCCOPY);

  dcBMP.SelectObject(pTmp);



Pero creo que esa complicacion no es necesaria si solo es poner el bitmap en alguna posicion. Entonces:

Código: Seleccionar todo

  CBitmap m_bmp; // Es recomendable que sea miembro
               // de la clase y sea cargado una sola vez

  m_bmp.LoadBitmap(IDB_ALGUNBITMAP);

  CSize sz = m_bmp.GetBitmapDimension();

  dcPrint.BitBlt([x],[y],sz.cx, sz.cy, NULL, 0, 0, SRCCOPY);


Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:30 pm
Ubicación: Peru

Respuesta

Notapor emanuelgcy el Vie Dic 09, 2005 11:40 am

Hola:
gracias por la respuesta. Pero probe con los dos codigos por separado que me escribiste y los meti en el codigo que yo puse de impresion pero no imprime el bitmap solo imprime el texto que esta con:
"dcPrint.TextOut(160,3700, "Observaciones: ");"

Pero no el bitmap. No aparece nada en la hoja solo el texo del "dcPrint.TextOut(...);" (el codigo incorporado compila ok).

Desde ya muchas gracias,
Saludos,
Emanuel.
emanuelgcy
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 113
Registrado: Vie Mar 18, 2005 5:52 pm


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados