Asignar recursos de GDI
En este artículo se explica cómo asignar y desasignar los objetos de la Interfaz de dispositivo gráfico (GDI) de Windows necesarios para la impresión.
Nota:
Para más información, consulta la documentación GDI+ SDK.
Supongamos que necesita usar determinadas fuentes, lápices u otros objetos GDI para imprimir, pero no para la visualización en pantalla. Debido a la memoria que necesitan, no resulta eficiente asignar estos objetos cuando se inicia la aplicación. Cuando la aplicación no está imprimiendo un documento, esa memoria puede ser necesaria para otros fines. Es mejor asignarlos cuando comienza la impresión y, después, eliminarlos cuando la impresión haya terminado.
Para asignar estos objetos GDI, invalide la función miembro OnBeginPrinting. Esta función es apropiada para este propósito por dos razones: 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 de dispositivo de impresora. Puede almacenar estos objetos para su uso durante el trabajo de impresión definiendo en la clase de vista variables miembro que apunten a objetos GDI (por ejemplo, miembros CFont *
, etc.).
Para usar los objetos GDI que creó, selecciónelos en el contexto de dispositivo de impresora en la función miembro OnPrint. Si necesita objetos GDI distintos para diferentes páginas del documento, puede examinar el miembro m_nCurPage
de la estructura CPrintInfo y seleccionar el objeto GDI correspondiente. Si necesita un objeto GDI para varias páginas consecutivas, Windows necesita que lo seleccione en el contexto de 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.