Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se explica cómo asignar y desasignar los objetos de interfaz de dispositivo gráfico (GDI) de Windows necesarios para imprimir.
Nota:
Para más información, consulte la documentación del SDK de GDI+.
Supongamos que necesita usar determinadas fuentes, lápices u otros objetos GDI para imprimir, pero no para la pantalla. Debido a la memoria que requieren, resulta ineficaz asignar estos objetos cuando se inicia la aplicación. Cuando la aplicación no imprime un documento, es posible que se necesite memoria para otros fines. Es mejor asignarlos cuando comience la impresión y, a continuación, eliminarlos cuando finalice la impresión.
Para asignar estos objetos GDI, invalide la función miembro OnBeginPrinting . Esta función es adecuada para este propósito por dos motivos: el marco llama a esta función una vez al principio de cada trabajo de impresión y, a diferencia de OnPreparePrinting, esta función tiene acceso al objeto CDC que representa el controlador del dispositivo de impresora. Puede almacenar estos objetos para usarlos durante el trabajo de impresión definiendo variables miembro en la clase de vista que apuntan a objetos GDI (por ejemplo, CFont * miembros, etc.).
Para usar los objetos GDI que ha creado, selecciónelos en el contexto del dispositivo de impresora en la función miembro OnPrint . Si necesita diferentes objetos GDI para diferentes páginas del documento, puede examinar el m_nCurPage miembro de la estructura CPrintInfo y seleccionar el objeto GDI en consecuencia. Si necesita un objeto GDI para varias páginas consecutivas, Windows requiere que lo seleccione en el contexto del dispositivo cada vez que se llame a OnPrint.
Para desasignar estos objetos GDI, invalide la función miembro OnEndPrinting. El marco llama a esta función al final de cada trabajo de impresión, lo que le ofrece la oportunidad de desasignar objetos GDI específicos de impresión antes de que la aplicación vuelva a otras tareas.