Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » druckerauflösung in erfahrung bringen ohne dialog??

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.02.2004, 23:07 Uhr
Darky



wie kann ich die drucker auflösung

dmYResolution
oder
dmPrintQuality

ohne CPageSetupDialog in erfahrung bringen???

hab n formatierten text(OnPrint) der immer in der selben position;grösse ausgegeben werden soll egal was für nen drucker oder welche auflösung!

momentan mach ich es so(geht super aber.....)


C++:
void CCRARView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
        //test drucken auflösung
        CPageSetupDialog test;
        
        LPDEVMODE dev_mode;
        
        test.DoModal();

        dev_mode = test.GetDevMode();
            
        res=dev_mode->dmYResolution;


        //name
        x=y=0;
        x+=res*14/100;// pos50 bei 360dpi=14%
        y+=res*36/100;//pos130 bei 360dpi=36%
        pDC->SelectObject(& fontRezeptPat);
        pDC->TextOut(linkerrand+x,obererrand+y,pDoc->pdaten[pDoc->bpos].fname);

        //vorname
        y+=res*17/100;//pos60 bei 360dpi=17%
        pDC->SelectObject(& fontRezeptPat);
        pDC->TextOut(linkerrand+x,obererrand+y,pDoc->pdaten[pDoc->bpos].fvorname);
..............................
...................................



mich nervt der dialog!
oder wie kann ich den dialog automatisch sofort wieder schliessen mit rückgabe von IDOK ohne das der nutzer was drücken muss???

Dieser Post wurde am 13.02.2004 um 23:16 Uhr von Darky editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.02.2004, 15:53 Uhr
~Flapsi
Gast


Müsste so gehen:

CDC dcPrint;
CPrintDialog dlgPrint(FALSE, PD_ALLPAGES, this);
if(!dlgPrint.GetDefaults())
AfxMessageBox(_T("Kein Standarddrucker"));
dcPrint.Attach(dlgPrint.GetPrinterDC());
int Horz=((dcPrint.GetDeviceCaps((HORZRES))));
int Vert=((dcPrint.GetDeviceCaps((VERTRES))));

Druckerauflösung steht in Horz und Vert.

Gruß
Flapsi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.02.2004, 18:26 Uhr
Darky



DANKE!
So ging es zwar nicht aber es hat mir geholfen!

so geht es:

C++:
        CPrintDialog dlgPrint(FALSE, PD_ALLPAGES, this);
        
        LPDEVMODE dev_mode;
        if(!dlgPrint.GetDefaults())AfxMessageBox(_T("Kein Standarddrucker"));

        dev_mode = dlgPrint.GetDevMode();
            
        res=dev_mode->dmPrintQuality;




in res steht dann die im Druckertreiber eingestellte Auflösung in dpi!

wenn ihr direkt ohne dialog mit aufruf OnPrint(also ohne vordefinierte mainframe-buttons) drucken wollt müsst ihr nur

pInfo->m_bDirect=TRUE;

in die OnPreparePrinting eintragen

Dieser Post wurde am 18.02.2004 um 18:32 Uhr von Darky editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.02.2004, 22:16 Uhr
~Flapsi
Gast


Ach sooo,

das meintest Du mit Druckerauflösung (irgendwie ja auch logisch...).

Viel Spaß noch !

Flapsi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: