Bonjour,
J'ai déjà fait pas mal de choses pour créer une boîte d'impression personnalisée.
But : imprimer plusieurs images du disque dur (choix du nombre d'images et impression des images choisies)
Il faudrait alors pouvoir choisir combien mettre d'images par page, leur disposition, leur taille, etc.
**J'ai récupéré la boîte de ressources standard 1538 que j'ai modifiée un peu (Boutons radio "Toutes les images" ou je garde les champs standards "de n°xx à n°xx") et je lui ai associé une classe CMyPrintDlg dérivée de CPrintDialog
**J'ai OnPreparePrinting(CPrintInfo* pInfo) qui ouvre cette boîte et initialise des éléments de champs de la boîte standard
**OnPrint(CDC* pDC, CPrintInfo* pInfo) qui fait :
Et dans OnDraw, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(pInfo) m_rcPrintRect = pInfo->m_rectDraw; //stocke le rectangle d'impression m_rectDraw dans uen variable de la classe
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CRect rcClient; if(pDC->IsPrinting()) rcClient = m_rcPrintRect; else GetClientRect(rcClient);
A ce stade-là (qui m'a déjà pris une éternité vu mon niveau), voilà ce que ça donne :
j'ai ma boîte personnalisée et le bouton imprimer imprime l'image à l'écran en petit en haut à gauche de ma feuille.
L'aperçu avant impression correspond bien à ce que j'obtiens.
Donc il reste:
-->Définir les actions de mes boutons ajoutés dans la boîte de dialogue (mais là, comment faire pour agir sur pInfo qu'on ne trouve que dans des fonctions standard de la View comme OnPreparePrinting(CPrintInfo* pInfo)
-->Où indiquer l'image à imprimer, où faire la boucle? (en imprimant les images demandées à partir de leur emplacement sur le disque dur directement où en les envoyant à la vue par la fonction Load, peut-être plus simple puisque ça utilise déjà le code de la fonction OnDraw).
-->Où imprimer les images sur la feuille (disposition)?
Pouvez-vous m'indiquer la marche à suivre ?
Merci.
Partager