Alocando recursos GDI
Este artigo explica como alocar e desalocar os objetos Windows graphics dispositivo interface (GDI) necessários para impressão.
Observação |
---|
GDI+ é incluído no Windows XP e está disponível como um redistribuível para Windows NT 4.0 SP6, Windows 2000, Windows 98 e Windows Me.Para baixar o mais recente redistribuível, consulte https://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm.Para obter mais informações, consulte a documentação do GDI+ SDK no MSDN: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlus.asp. |
Suponha que você precise usar determinadas fontes, canetas ou outros objetos GDI para impressão, mas não para exibição na tela.Devido a memória de que necessitam, é ineficiente para alocar esses objetos quando o aplicativo é iniciado.Quando o aplicativo não está imprimindo um documento, que a memória pode ser necessária para outros fins.É melhor alocá-las quando a impressão começa e, em seguida, excluí-los quando a impressão termina.
Para alocar esses objetos GDI, substituir o OnBeginPrinting função de membro.Esta função é ideal para esta finalidade por dois motivos: a estrutura chama essa função uma vez no início de cada trabalho de impressão e, ao contrário de OnPreparePrinting, essa função tem acesso a CDC objeto que representa o driver de dispositivo de impressora.Você pode armazenar esses objetos para uso durante o trabalho de impressão, definindo as variáveis de membro em sua classe de modo a apontar para objetos GDI (por exemplo, CFont * membros e assim por diante).
Para usar os objetos GDI que você criou, selecione-os no contexto de dispositivo de impressora na AoImprimir função de membro.Se precisar de objetos GDI diferentes para diferentes páginas do documento, você pode examinar o m_nCurPage membro do CPrintInfo estrutura e selecione o objeto GDI adequadamente.Se você precisar de um objeto GDI para várias páginas consecutivas, Windows requer que você selecione ele no contexto de dispositivo sempre OnPrint é chamado.
Para desalocar esses objetos GDI, substituir o OnEndPrinting função de membro.A estrutura chama essa função no final de cada trabalho de impressão, dando a oportunidade para desalocar objetos GDI de impressão específicas antes do aplicativo retorna a outras tarefas.