Choix imprimante

Signaler
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004
-
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004
-
Bonjour,
je voudrais imprimer un fichier directement sans l'ouvrir!
Quand j'utilise ShellExcetute avec print il choisit la telecopie par défaut je voudrais pouvoir faire choisir l'imprimante à l'utilisateur
Est ce quelqu'un sait comment faire?
merci
Mae ;)

5 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Petzold te le dira, lecture !!!
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004

oki merci :-)

j'ai regardé mais j'ai un petit problème je ne sais pas ce qui correspond au fichier que je veux imprimer!


#include <windows.h> 
#include <commdlg.h>

RECT                rect ;
HDC                 hdcPrn ;
DOCINFO      di = { sizeof (DOCINFO), TEXT ("EmfView: Printing") } ;
HENHMETAFILE hemf;
PRINTDLG     printdlg = { sizeof (PRINTDLG) } ;
TCHAR szAppName[] = TEXT ("EmfView") ;

int main(void)
{
bool bSuccess;
HWND     hwnd ;
  
// Affiche la boîte de dialogue Imprimer et récupère le contexte de périphérique imprimante

printdlg.Flags = PD_RETURNDC | PD_NOPAGENUMS | PD_NOSELECTION ;

          if (!PrintDlg (&printdlg))
          return 0 ;
                              if (NULL (hdcPrn printdlg.hDC)) 
               {
                    MessageBox (hwnd, TEXT ("Imprimante introuvable"),
                                szAppName, MB_ICONEXCLAMATION | MB_OK) ;
                    return 0 ;
               }
                    // Récupère la zone imprimable de la page
               rect.left   = 0 ;
               rect.right  = GetDeviceCaps (hdcPrn, HORZRES) ;
               rect.top    = 0 ;
               rect.bottom = GetDeviceCaps (hdcPrn, VERTRES) ;

               bSuccess = FALSE ;

                    // Imprime

               SetCursor (LoadCursor (NULL, IDC_WAIT)) ;
               ShowCursor (TRUE) ;

               if ((StartDoc (hdcPrn, &di) > 0) && (StartPage (hdcPrn) > 0))
               {
                    PlayEnhMetaFile (hdcPrn, hemf, &rect) ;
                    
                    if (EndPage (hdcPrn) > 0)
                    {
                         bSuccess = TRUE ;
                         EndDoc (hdcPrn) ;
                    }
               }
               ShowCursor (FALSE) ;
               SetCursor (LoadCursor (NULL, IDC_ARROW)) ;

               DeleteDC (hdcPrn) ;

               if (!bSuccess)
                    MessageBox (hwnd, TEXT ("Impossible d'imprimer le fichier"),
                                szAppName, MB_ICONEXCLAMATION | MB_OK) ;
               return 0 ;

}


j'ai écrit ça !
Ca marche bien j'ai une jolie page blanche
Est ce que tu peux m'éclairer?
Merci d'avance Maeva
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004

j'avais oublié cette ligne
hemf = GetEnhMetaFile ("C:\\Maeva\\temp\\a46c.pdf") ;

mais j'ai toujours une page blanche
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Ce soir en rentrant (si trop tard demain matin) je fais un exemple (a la va vite) de visualiseur wmf avec impression et je le mets en source.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004

oki merci beaucoup