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

C++Builder Discussion :

problème avec la boite de dialog d'impression [Non suivi]


Sujet :

C++Builder

  1. #1
    hrp
    hrp est déconnecté
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut problème avec la boite de dialog d'impression
    pourquoi ce code ne m'affiche-t-il pas la boite de dialog d'impression?

    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
    //---------------------------------------------------------------------------
    #include <windows.h>
    //---------------------------------------------------------------------------
    WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
     
            PRINTDLG pd;
            HWND hwnd;
            hwnd = 0;
     
            // Initialize PRINTDLG
            ZeroMemory(&pd, sizeof(pd));
            pd.lStructSize = sizeof(pd);
            pd.hwndOwner   = hwnd;
            pd.hDevMode    = NULL;
            pd.hDevNames   = NULL;
            pd.Flags       = PD_RETURNIC;
            pd.nCopies     = 1;
            pd.nFromPage   = 1;
            pd.nToPage     = 1;
            pd.nMinPage    = 1;
            pd.nMaxPage    = 1;
     
            PrintDlg(&pd);
     
            return 0;
    }
    //---------------------------------------------------------------------------
    Balises [Code] rajoutées par Greybird
    Pensez-y à l'avenir

  2. #2
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    As-tu testé le code de retour de PrintDlg ?

    Cordialement,

    Arnaud

    P.S. : un peu plus de politesse est la bienvenue (bonjour, merci, etc...), plutôt qu'un simple énoncé brut...

  3. #3
    hrp
    hrp est déconnecté
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Hello,

    oui voici mon code pour tester le retour. l'erreur retournée est "CDERR_STRUCTSIZE" (ma pd.lStructSize est égale à "68").
    je ne comprend vraiment pas où peut être le problème, pourtant c'est du code tiré de la msdn

    merci pour votre temps passer à m'aider

    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
    41
    42
    43
    44
    45
     
    //---------------------------------------------------------------------------
    #include <windows.h>
    //---------------------------------------------------------------------------
    WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
            PRINTDLG pd;
            HWND hwnd;
            hwnd = 0;
     
            // Initialize PRINTDLG
            ZeroMemory(&pd, sizeof(pd));
            pd.lStructSize = sizeof(pd);
            pd.hwndOwner   = hwnd;
            pd.hDevMode    = NULL;
            pd.hDevNames   = NULL;
            pd.Flags       = PD_RETURNIC;
            pd.nCopies     = 1;
            pd.nFromPage   = 1;
            pd.nToPage     = 1;
            pd.nMinPage    = 1;
            pd.nMaxPage    = 1;
     
            PrintDlg(&pd);
            DWORD dw = CommDlgExtendedError();
     
            switch(dw)
            {
            case CDERR_DIALOGFAILURE        : MessageBox(NULL, "CDERR_DIALOGFAILURE", "error", MB_OK);
            case CDERR_FINDRESFAILURE       : MessageBox(NULL, "CDERR_FINDRESFAILURE", "error", MB_OK);
            case CDERR_INITIALIZATION       : MessageBox(NULL, "CDERR_INITIALIZATION", "error", MB_OK);
            case CDERR_LOADRESFAILURE       : MessageBox(NULL, "CDERR_LOADRESFAILURE", "error", MB_OK);
            case CDERR_LOADSTRFAILURE       : MessageBox(NULL, "CDERR_LOADSTRFAILURE", "error", MB_OK);
            case CDERR_LOCKRESFAILURE       : MessageBox(NULL, "CDERR_LOCKRESFAILURE", "error", MB_OK);
            case CDERR_MEMALLOCFAILURE      : MessageBox(NULL, "CDERR_MEMALLOCFAILURE", "error", MB_OK);
            case CDERR_MEMLOCKFAILURE       : MessageBox(NULL, "CDERR_MEMLOCKFAILURE", "error", MB_OK);
            case CDERR_NOHINSTANCE          : MessageBox(NULL, "CDERR_NOHINSTANCE", "error", MB_OK);
            case CDERR_NOHOOK               : MessageBox(NULL, "CDERR_NOHOOK", "error", MB_OK);
            case CDERR_NOTEMPLATE           : MessageBox(NULL, "CDERR_NOTEMPLATE", "error", MB_OK);
            case CDERR_REGISTERMSGFAIL      : MessageBox(NULL, "CDERR_REGISTERMSGFAIL", "error", MB_OK);
            case CDERR_STRUCTSIZE           : MessageBox(NULL, "CDERR_STRUCTSIZE", "error", MB_OK);
            }
            return 0;
    }
    //---------------------------------------------------------------------------

  4. #4
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Tu peux essayer de faire un sizeof(PRINTDLG) plutôt que sizeof(pd).

    Ou sinon, tu peux peut-être voir pour positionner l'alignement des bits à 1 dans les options de Builder.:
    Projet | Options > Avancé | Alignement à Byte ou Word.
    mais je n'y crois pas trop...

    Sinon, il existe TPrintDialog adns la VCL par exemple.

  5. #5
    hrp
    hrp est déconnecté
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Hello,

    j'ai essayé sizeof(PRINTDLG) à la place de sizeof(pd) et ça ne change rien.
    j'ai essysé toutes les possibilitées Projet | Options > Avancé | Alignement et ça ne change rien.

    je vais donc exploiter la voie avec TPrintDialog dans la VCL

    merci pour tout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 20/07/2011, 10h20
  2. Problème avec la boite de connexion
    Par borislenium dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/06/2008, 16h07
  3. j ai un problème avec ma boite yahoo
    Par m2007 dans le forum Internet
    Réponses: 0
    Dernier message: 14/05/2008, 21h14
  4. Réponses: 5
    Dernier message: 11/01/2007, 12h09
  5. [JOptionPane] Problème avec une boite de sauvegarde
    Par lanfeustdetroll dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 03/08/2005, 17h33

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