Druckerdialog mit errechneten werten initialisieren



  • Hallo,

    brauche dringend Hilfe !

    weis jemand wie ich einen Druckerdialog der Klasse CPrintDialog mit Werten die ich vorher errechnet habe u.a. Seitenzahlen von - bis, max. Seiten etc. initialisieren kann bevor ich den Dialog mit DoModal aufrufe ?

    MfG



  • Hallo,

    das Objekt der Klasse CPrintDialog hat einen Member mit der Bezeichnung m_pd.
    Dieses m_pd ist ein PRINTDLG.

    Und das sollte dann nützlich sein: 😉

    PRINTDLG
    The PRINTDLG structure contains information that the PrintDlg function uses to initialize the Print dialog box. After the user closes the dialog box, the system uses this structure to return information about the user's selections.

    typedef struct tagPD {
    DWORD lStructSize;
    HWND hwndOwner;
    HGLOBAL hDevMode;
    HGLOBAL hDevNames;
    HDC hDC;
    DWORD Flags;
    WORD nFromPage;
    WORD nToPage;
    WORD nMinPage;
    WORD nMaxPage;
    WORD nCopies;
    HINSTANCE hInstance;
    LPARAM lCustData;
    LPPRINTHOOKPROC lpfnPrintHook;
    LPSETUPHOOKPROC lpfnSetupHook;
    LPCTSTR lpPrintTemplateName;
    LPCTSTR lpSetupTemplateName;
    HGLOBAL hPrintTemplate;
    HGLOBAL hSetupTemplate;
    } PRINTDLG, *LPPRINTDLG;

    Ich wollte nicht alles kopieren, da es doch etwas zu lang werden würde...;)



  • Das ist schon richtig aber wenn ich z.B.

    CPrintDialog dlgPrint(FALSE)
    dlgPrint.m_pd.nFromPage = 1;
    dlgPrint.m_pd.nToPage   = sitecount-1;
    ...
    
    if(dlgPrint.DoMaodal() == IDOK)
    {
      // Druckvorgang starten
      ...
    }
    

    schreibe, dann werden die Werte nicht in die Dialogbox übernommen. Warum ist das so bzw. was muss ich besser machen ?


Anmelden zum Antworten