Allocazione di risorse GDI
In questo articolo viene illustrato l'allocazione e il rilascio degli oggetti di (GDI) di Graphics Device Interface) windows necessari per stampare.
Nota
GDI+ è incluso con Windows XP ed è disponibile come pacchetto ridistribuibile per Windows NT 4.0 SP6, Windows 2000, Windows 98 e Windows Me.Per scaricare la versione più recente del pacchetto ridistribuibile, vedere https://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm.Per ulteriori informazioni, vedere la documentazione SDK relativa in MSDN: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlus.asp.
Si supponga essere necessario utilizzare determinati tipi di carattere, penne, o altri oggetti GDI per la stampa, ma non per la visualizzazione. A causa della memoria che richiedono, è efficiente da allocare questi oggetti all'avvio. Quando l'applicazione non si stampa un documento, tale memoria può essere necessaria per altri scopi. È preferibile programmatore durante la stampa inizia quindi li elimina per la terminazione.
Per evitare questi oggetti GDI, eseguire l'override della funzione membro di OnBeginPrinting. Questa funzione è particolarmente adatta a questo scopo per due motivi: il framework chiama una volta questa funzione all'inizio di ogni processo di stampa e, a differenza di OnPreparePrinting, questa funzione ha accesso all'oggetto CDC che rappresenta il driver di periferica della stampante. È possibile archiviare questi oggetti da utilizzare durante il processo di stampa definendo le variabili membro della classe di visualizzazione che puntano agli oggetti GDI (ad esempio, membri di CFont *, e così via).
Per utilizzare gli oggetti GDI che la loro creazione, selezionare il contesto di dispositivo printer nella funzione membro di OnPrint. Se sono necessari gli oggetti GDI diversi per le pagine diverse del documento, è possibile esaminare il membro di m_nCurPage della struttura di CPrintInfo e selezionare pertanto l'oggetto GDI. Se è necessario un oggetto GDI per diverse pagine consecutive windows, è necessario che lo selezionare nel contesto di dispositivo ogni volta OnPrint essere chiamati.
Per eliminare questi oggetti GDI, eseguire l'override della funzione membro di OnEndPrinting. Il framework chiama la funzione alla fine di ogni processo di stampa, consentendo così di rimuovere gli oggetti stampa GDI specifici prima della restituzione di applicazione alle altre attività.