No se tardan ni bueno no se

sergiosonic2k
12 de Agosto del 2004
Necesito que me digan o expliquen como imprimir en papel, o para ser mas exacto en impresora tengo un programa que inicia con una ventana de CFormView y esa misma tiene dentro una herrramienta flexgrid en la cual estan los datos que quiero imprimir, si se imprimir pero solo cuando estan directos en la ventana no en una herramienta de control como flexgrid, gracias y porfa ayudenme

juanin
12 de Agosto del 2004
Pues no es nada trivial, la cosa esta complicada. Dices que sabes imprimir cuando los datos estan en una ventana; supongo que te refieres al modelo vista-documento, la funcion OnDraw, OnPrint y todo eso, no?
Con la clase vista normalmente todo lo que quieres que el usuario vea tienes que ir sacandolo por OnDraw, donde pones el codigo necesario para que se vea lo que estas haciendo (textos, dibujos o lo que sea) y despues al imprimir, se coge ese mismo codigo solo cambiando el contexto de la pantalla por el de la impresora con lo que no hay que hacer trabajo extra. Si no tienes una clase vista por ningun lado (es lo que entiendo) pues tendras que hacer este trabajo expresamente para la impresion, manipulando las funciones de la clase CDC (lineas, rectangulos, fuentes, bitmaps...; si no sabes de que va eso, mejor que busques CDC en google o en el MSDN si lo tienes). El problema grave de no tener clase vista es que no se de donde puedes sacar la referencia al contexto de la impresora (a un objeto CDC) ya que no hay OnPrint ni nada que se le parezca y de hay es el unico sitio de donde puedes sacar el CDC.
Sera posible, urgando en las entrañas de MFC y haciendolo todo a pelo (configuracion de impresora y obtencion de todo lo relacionado con el trabajo de impresion) pero no debe ser divertido. Si no tienes una clase vista y no tienes en mente usarla vas a tener que aprender mucho de como funciona windows internamente. Lamento no poder ser yo quien te explique mas.
Suerte.