Bonjour,
Dans une application de type WordPad, je tente de permettre � l'utilisateur de pouvoir r�gler le setup de l'imprimante et des pages.
Pour cela, je fais appel � la classe CPageSetupDialog.
Aussi quand l'utilisateur clic sur Fichier/Print Setup ....
je fais appel � la fonction suivante :
1- traitement des marges :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 void CEditPvApp::OnFilePrintSetup() { // TODO: Add your command handler code here CPageSetupDialog psd( PSD_INHUNDREDTHSOFMILLIMETERS | PSD_MARGINS, AfxGetApp()->GetMainWnd()); // Initialize margins // margeTop à margeBottom : variables de la classe principale psd.m_psd.rtMargin.top = margeTop ; psd.m_psd.rtMargin.left = margeLeft ; psd.m_psd.rtMargin.right = margeRight ; psd.m_psd.rtMargin.bottom = margeBottom ; if( IDOK == psd.DoModal() ) { // Propagate changes to the app AfxGetApp()->SelectPrinter(psd.m_psd.hDevNames, psd.m_psd.hDevMode); // mémorisation des marges saisies par l'utilisateur margeTop = psd.m_psd.rtMargin.top ; margeLeft = psd.m_psd.rtMargin.left ; margeRight = psd.m_psd.rtMargin.right ; margeBottom = psd.m_psd.rtMargin.bottom ; } else TRACE("CommDlgExtendedError returned error %d from CPageSetupDialog::DoModal().\n", (int)CommDlgExtendedError() ); }
Comme je le souhaitai, j'obtiens bien une bo�te de dialogue me permettant de g�rer les options telles que marges et orientation papier (+ imprimante bien sur).
Quand la fonction est finie et que je lance soit une impression soit une pr�visualisation je me rend compte que les marges ne sont pas prises en compte... Mais par contre on tient bien compte de l'orientation choisie.
-> Auriez vous une id�e sur le probl�me ?
2- m�morisation de l'orientation papier choisie par l'utilisateur
Autre disfonctionnement, quand je rentre dans cette bo�te de dialogue c'est l'orientation portrait qui est choisie. Si je s�lectionne l'orientation paysage pui que je sors et que je rerentre dans la bo�te, c'est toujours l'orientation portrait qui est s�lectionn�e.
-> comment puis je initialiser la s�lection sur la derni�re orientation s�lectionn�e par l'utilisateur ?
(pour les marges, je m�morise leur valeur dans des variables de la classe puis j'initialise la bo�te de dialogue avant de mettre DoModal. Je pensais faire de m�me mais je n'arrive pas � r�cup�rer la variable qui me permettra de conna�tre le choix utilisateur.
Merci beaucoup de votre aide
Alice
Partager