Alocando recursos GDI
Este artigo explica como aloque e desaloque os objetos de (GDI) de graphics device interface do windows necessários para imprimir.
Dica
GDI+ está incluído no Windows XP e está disponível como um redistribuível para Windows NT 4.0 SP6, Windows 2000, Windows 98, Windows e Me.Para baixar o redistribuível o último, consulte https://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm.Para obter mais informações, consulte a documentação do SDK GDI+ no MSDN: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlus.asp.
Suponha que o precise usar certas fontes, penalidades, ou outros objetos de GDI para imprimir, mas não para a visualização ótica. Devido à memória que exigem, ele é ineficiente para atribuir estes objetos quando o aplicativo inicia. Quando o aplicativo não estiver imprimindo um documento, essa memória será necessária para outros fins. É melhor atribui-los quando inicia, imprimir e excluirá ao imprimir encerrada.
Para atribuir estes objetos de GDI, substitua a função de membro de OnBeginPrinting . Essa função é adequado para esse propósito por duas razões: a estrutura chama esta função uma vez no início de cada trabalho de cópia e, ao contrário de OnPreparePrinting, essa função tem acesso ao objeto de CDC que representa o driver de dispositivo da impressora. Você pode armazenar esses objetos para uso durante o trabalho de cópia definindo variáveis de membro em sua classe de exibição que aponte para GDI objetos (por exemplo, membros de CFont * , e assim por diante).
Para usar os objetos dos GDI que você criou, selecione no contexto do dispositivo de impressora na função de membro de OnPrint . Se você precisar GDI diferente objetos para páginas diferentes do documento, você pode examinar o membro de m_nCurPage da estrutura de CPrintInfo e selecione o objeto de GDI adequadamente. Se você precisar de um objeto de GDI para várias páginas sucessivas, o windows requerem que você seleciona no contexto OnPrint de dispositivo é chamado cada vez.
Para desalocar esses objetos de GDI, substitua a função de membro de OnEndPrinting . A estrutura chama esta função no final de cada trabalho de cópia, permitindo que você tenha a oportunidade de desaloque objetos impressão- específicos de GDI antes que o aplicativo retorna a outras tarefas.