PrintDlg und Querformat



  • Hi,
    ich möchte einen PrintDlg aufrufen und als Voreinstellung das Querformat haben! Mit dem folgenden Code geht das nicht:

    DEVMODE *lpdm = new DEVMODE();
     lpdm->dmOrientation = DMORIENT_LANDSCAPE;
    
     PRINTDLG *lppd = new PRINTDLG();
     lppd->lStructSize = sizeof(PRINTDLG);
     lppd->hDevMode = lpdm;
     lppd->Flags = PD_NOPAGENUMS + PD_NOSELECTION + PD_ALLPAGES;
     lppd->nFromPage = 0;
     lppd->nToPage = 0;
     lppd->nMinPage = 0;
     lppd->nMaxPage = 0;
     lppd->nCopies = 1;
    
     if (PrintDlg(lppd)) ShowMessage("OK");
    
     delete lppd;
     delete lpdm;
    

    Dialog wird zwar angezeigt aber immer noch mit Voreinstellung Hochformat!

    Hab auch schon mit Google gesucht aber nichts brauchbares gefunde!

    MfG

    Alexander Sulfrian



  • Hat sich erledigt! Hab doch noch was gefunde:

    PRINTDLG *lppd = new PRINTDLG();
     lppd->lStructSize = sizeof(PRINTDLG);
     lppd->hDevMode = GlobalAlloc(GHND,sizeof(DEVMODE));
    
     DEVMODE *lpdm = (DEVMODE *)GlobalLock(lppd->hDevMode);
     lpdm->dmSize=sizeof(DEVMODE);
     lpdm->dmFields=DM_ORIENTATION;
     lpdm->dmOrientation=DMORIENT_LANDSCAPE;
     GlobalUnlock(lppd->hDevMode);
    
     lppd->Flags = PD_NOPAGENUMS + PD_NOSELECTION + PD_ALLPAGES;
     lppd->nFromPage = 0;
     lppd->nToPage = 0;
     lppd->nMinPage = 0;
     lppd->nMaxPage = 0;
     lppd->nCopies = 1;
    
     if (PrintDlg(lppd)) ShowMessage("OK");
    
     delete lppd;
     delete lpdm;
    

    MfG

    Alexander Sulfrian


Log in to reply