Allocazione di risorse GDI
Questo articolo descrive come allocare e deallocare gli oggetti Graphics Device Interface (GDI) di Windows necessari per la stampa.
Nota
Per altre informazioni, vedere la documentazione di GDI+ SDK.
Si supponga di dover usare determinati tipi di carattere, penne o altri oggetti GDI per la stampa, ma non per la visualizzazione sullo schermo. A causa della quantità di memoria che richiedono, non è conveniente allocare questi oggetti all'avvio dell'applicazione. Quando l'applicazione non stampa un documento, la memoria potrebbe essere necessaria per altri scopi. È preferibile allocare gli oggetti all'avvio della stampa e quindi eliminarli al termine.
Per allocare questi oggetti GDI, eseguire l'override della funzione membro OnBeginPrinting . Questa funzione è adatta a questo scopo per due motivi: il framework chiama questa funzione una sola volta all'inizio di ogni processo di stampa e, a differenza di OnPreparePrinting, questa funzione ha accesso all'oggetto CDC che rappresenta il driver del dispositivo della stampante. È possibile archiviare questi oggetti da usare durante il processo di stampa definendo le variabili membro nella classe di visualizzazione che puntano a oggetti GDI, CFont *
ad esempio membri e così via.
Per usare gli oggetti GDI creati, selezionarli nel contesto del dispositivo della stampante nella funzione membro OnPrint . Se sono necessari oggetti GDI diversi per pagine diverse del documento, è possibile esaminare il m_nCurPage
membro della struttura CPrintInfo e selezionare di conseguenza l'oggetto GDI. Se è necessario un oggetto GDI per diverse pagine consecutive, in Windows è necessario selezionarlo nel contesto di dispositivo ogni volta che viene chiamato OnPrint
.
Per deallocare questi oggetti GDI, eseguire l'override della funzione membro OnEndPrinting . Il framework chiama questa funzione alla fine di ogni processo di stampa, permettendo di deallocare oggetti GDI specifici della stampa prima che l'applicazione torni ad altre attività.