Procedura di stampa predefinita

In questo articolo viene illustrato il processo di stampa predefinito in Windows a livello del framework MFC.

Nelle applicazioni MFC, la classe di visualizzazione dispone di una funzione membro denominata OnDraw contenente tutto il codice di disegno. OnDraw accetta un puntatore a un oggetto CDC come parametro. L'oggetto CDC rappresenta il contesto di dispositivo che deve ricevere l'immagine prodotta da OnDraw. Quando la finestra che visualizza il documento riceve un messaggio WM_PAINT , il framework chiama OnDraw e passa un contesto di dispositivo per lo schermo (un oggetto CPaintDC , per essere specifico). Pertanto, l'output di OnDraw sarà inviato allo schermo.

Nella programmazione per Windows, l'invio di output alla stampante è molto simile all'invio di output allo schermo. Questo perché la Graphics Device Interface (GDI) di Windows è indipendente dall'hardware. È possibile utilizzare le stesse funzioni GDI per la visualizzazione su schermo o per la stampa utilizzando semplicemente il contesto di dispositivo appropriato. Se l'oggetto CDC ricevuto da OnDraw rappresenta la stampante, l'output di OnDraw sarà inviato alla stampante.

Questo spiega come le applicazioni MFC possono eseguire la stampa semplice senza necessità di operazioni aggiuntive. Il framework si occupa della visualizzazione della finestra di dialogo Stampa e della creazione di un contesto di dispositivo per la stampante. Quando l'utente seleziona il comando Stampa dal menu File, la visualizzazione passa tale contesto di dispositivo a OnDraw, che disegna il documento nella stampante.

Tuttavia, esistono alcune differenze significative tra stampa e visualizzazione su schermo. Quando si stampa, è necessario dividere il documento in pagine distinte e visualizzarle una alla volta, anziché mostrare la porzione visibile in una finestra. Si deve quindi tenere conto del formato della carta (ovvero dimensione lettera, legale o busta). È possibile che si desideri stampare con orientamenti diversi, quali l'orientamento orizzontale o verticale. La libreria MFC non può prevedere come l'applicazione gestirà questi problemi, pertanto viene fornito un protocollo per poter aggiungere queste funzionalità.

Questo protocollo è descritto nell'articolo Documenti a più pagine.

Vedi anche

Stampa