Alocando recursos GDI
Este artigo explica como alocar e desalocar os objetos GDI (interface de dispositivo gráfico) do Windows necessários para impressão.
Observação
Para obter mais informações, confira a documentação do SDK GDI+.
Suponha que você precise usar determinadas fontes, canetas ou outros objetos GDI para impressão, mas não para exibição na tela. Devido à memória necessária, é ineficiente alocar esses objetos quando o aplicativo é iniciado. Quando o aplicativo não está imprimindo um documento, essa memória pode ser necessária para outras finalidades. É melhor alocá-los quando a impressão começar e excluí-los quando a impressão terminar.
Para alocar esses objetos GDI, substitua a função de membro OnBeginPrinting. Essa função é adequada para essa 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, ela função tem acesso ao objeto CDC que representa o driver do dispositivo da impressora. Você pode armazenar esses objetos para uso durante o trabalho de impressão definindo variáveis de membro em sua classe de exibição que apontam para objetos GDI (por exemplo, membros CFont *
, e assim por diante).
Para usar os objetos GDI que você criou, selecione-os no contexto do dispositivo de impressora na função membro OnPrint. Se você precisar de diferentes objetos GDI para diferentes páginas do documento, poderá examinar o membro m_nCurPage
da estrutura CPrintInfo e selecionar o objeto GDI adequadamente. Se você precisar de um objeto GDI para várias páginas consecutivas, o Windows exigirá que você o selecione no contexto do dispositivo sempre que OnPrint
for chamado.
Para desalocar esses objetos GDI, substitua a função membro OnBeginPrinting. A estrutura chama essa função no final de cada trabalho de impressão, oferecendo a oportunidade de desalocar objetos GDI específicos de impressão antes que o aplicativo retorne a outras tarefas.