IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

PrintDlgEx (custom print dialog)


Sujet :

Visual C++

  1. #1
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut PrintDlgEx (custom print dialog)
    Bonjour, je d�sire faire un application qui imprime avec une fen�tre modifi�e disponible dans les resources. J'ai r�ussi � en faire avec PrintDlg, mais je n'y arrive pas avec PrintDlgEx. Il est important pour le look d'utiliser PrintDlgEx .

    Je n'ai trouv� aucun exemple qui utlise lpPrintTemplateName lpCallback, et hInstance. Dans tout les exemples, c'est valeur sont NULL

    Voici mon code:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
        BOOL bResult = FALSE;
        LPPRINTDLGEXW ptPrt = NULL;
        LPPRINTPAGERANGE ptPageRanges = NULL;
     
        ptPrt = calloc(1, sizeof(PRINTDLGEXW));
        ptPageRanges = calloc(10, sizeof(PRINTPAGERANGE));
     
        ptPrt->lStructSize    = sizeof(PRINTDLGEXW);
        ptPrt->hwndOwner      = gtPPMreportHWnd;
        ptPrt->hDevMode       = NULL;
        ptPrt->hDevNames      = NULL;
        ptPrt->hDC            = NULL;
        //ptPrt->Flags          = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC | 
        //                        PD_ENABLEPRINTTEMPLATE | PD_NOPAGENUMS;;
        ptPrt->Flags          = PD_RETURNDC | PD_COLLATE | PD_ENABLEPRINTTEMPLATE | PD_ENABLEPRINTTEMPLATEHANDLE;
     
        ptPrt->Flags2         = 0;
        ptPrt->ExclusionFlags = 0;
        ptPrt->nPageRanges    = 0;
        ptPrt->nMaxPageRanges = 10;
        ptPrt->lpPageRanges   = ptPageRanges;
        ptPrt->nMinPage       = 1;
        ptPrt->nMaxPage       = 1000;
        ptPrt->nCopies        = 1;
        ptPrt->hInstance      = gtAppHInst;
        ptPrt->lpCallback     = (IUnknown*)PrintDlgProc;
        ptPrt->nPropertyPages = 0;
        ptPrt->lphPropertyPages = NULL;
        ptPrt->nStartPage     = START_PAGE_GENERAL;
        ptPrt->dwResultAction = 0;
        ptPrt->lpPrintTemplateName = (LPWSTR)MAKEINTRESOURCEW(IDR_PRNTDLG);
        bResult = !PrintDlgExW((LPPRINTDLGEXW)ptPrt);
        *phPrtDC = ptPrt->hDC;
     
        if(ptPrt!=NULL)
            free(ptPrt);
        if(ptPageRanges!=NULL)
            free(ptPageRanges);
     
        return bResult;
    Exemple (sans fen�tre custom):
    http://msdn.microsoft.com/library/de...ialogboxes.asp

    Merci

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Je ne comprend pas comment utiliser l'interface IPrintDialogCallback. On en parle sur :
    http://msdn.microsoft.com/library/de...pertySheet.asp

    Mais il n'y a pas d'exemple.

    Pr�sentement ma fonction de callback � l'air de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    IPrintDialogCallback* PrintDlg(HWND, UINT, WPARAM, LPARAM, LRESULT *);
    Mais, j'ai aucune id�e si c'est bon?

    Si quelqu'un a une id�e...

  3. #3
    Membre confirm� Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    D�tails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par d�faut
    Salut,
    Apr�s presque 4 ans de votre question, je veux faire presque la m�me chose que vous, cr�er une fen�tre personnalis�e pour l'impression et remplacer celle de windows par d�faut,
    pouvez vous m'�claircir comment faire ...

    Merci

Discussions similaires

  1. Print Dialog utilisation?
    Par jojo86 dans le forum Composants VCL
    R�ponses: 3
    Dernier message: 02/07/2021, 09h28
  2. Afficher le print dialog natif sous linux
    Par _skip dans le forum Documents
    R�ponses: 0
    Dernier message: 25/02/2011, 12h12
  3. custom print dialog
    Par waspy59 dans le forum C#
    R�ponses: 0
    Dernier message: 26/01/2010, 16h22
  4. R�ponses: 1
    Dernier message: 13/01/2010, 17h54
  5. Customisation Du Print Dialog: propri�t�s de l'imprimante
    Par ronanogor dans le forum Agents de placement/Fen�tres
    R�ponses: 1
    Dernier message: 07/10/2008, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo