Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Drucken des Inhaltes einer Listbox

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.2006, 18:47 Uhr
~Flapsi01
Gast


Hallo,

ich möchte den Inhalt einer Listbox drucken. Dabei nehme ich folgenden Quellcode:


C++:
void CExStartDlg::OnBnClickedPrint()
{
CListBox List;
HWND li=::GetDlgItem(m_hWnd,IDC_LIST1);
List.Attach(li);
CPrintDialog dlgPrint(FALSE, PD_ALLPAGES, this);
CPrintInfo pInfo;
if(!dlgPrint.GetDefaults())
    AfxMessageBox(_T("Bitte richten Sie einen Standarddrucker ein"));
CDC dcPrint;
dcPrint.Attach(dlgPrint.GetPrinterDC());
DEVMODE *myMode = dlgPrint.GetDevMode();
myMode->dmOrientation = DMORIENT_LANDSCAPE;
myMode->dmColor=DMCOLOR_COLOR ;
dcPrint.ResetDC(myMode);    
DOCINFO myPrintJob;
myPrintJob.cbSize=sizeof(myPrintJob);
myPrintJob.lpszDocName="test";
myPrintJob.lpszOutput=NULL;
myPrintJob.lpszDatatype=NULL;
myPrintJob.fwType=NULL;
if(dcPrint.StartDoc(&myPrintJob)>=0) {
    dcPrint.StartPage();
    List.PrintClient(&dcPrint,PRF_CLIENT);
    dcPrint.EndPage();
    }
    dcPrint.EndDoc();
    List.Detach();
}



Ich bekomme auch einen Ausdruck, aber mit extrem kleiner Schrift (kaum lesbar). Wie kann ich die Schrift beim Ausdruck vergrössern ?

Beste Grüße

Flapsi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.02.2006, 11:10 Uhr
~antalia
Gast


so hat es bei mri funktioniert:


C++:
void CDruckenView::Schriftarten_definieren(CFont *Zeiger_auf_unser_Courier_New)
{
    LOGFONT logFont;
    memset(&logFont, 0, sizeof(logFont));

    if (!::GetSystemMetrics(SM_DBCSENABLED))
    {
        logFont.lfHeight = 100;   //hier Schriftgröße angeben
        logFont.lfWeight = FW_NORMAL;   // hier kursiv, fett od. normal angeben
        logFont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;

        CString strDefaultFont = "Courier New";
        
        lstrcpy(logFont.lfFaceName, strDefaultFont);
        (*Zeiger_auf_unser_Courier_New).CreateFontIndirect(&logFont);
    }    
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.02.2006, 23:34 Uhr
~Flapsi
Gast


Vielen Dank für den Tipp !

Die Fonts sind jetzt größer, und man kann den Inhalt der Listbox (leider nur teilweise s.u.) lesen. Allerdings tritt nun folgender Effekt auf:

Der Ausdruck zeigt in der oberen linken Ecke nur einen Teil der Listbox, d.h. das Ausgabefenster auf dem Ausdruck hat sich mit Vergrössern der Schriftgröße nicht angepaßt, so dass jetzt Teile der Listbox "abgeschnitten" werden. Wie gesagt, die Schriftgröße ist jetzt o.k. aber es wird nur ein ganz kleiner Teil meines A4-Blattes bedruckt und der Inhalt der Listbox wird abgeschnitten dargestellt.

Gibt es irgendeine Art der Skalierung, mit der ich meinen Clientbereich der Listbox an den PrinterDC anpassen kann ? Oder kann ich den PrinterDC an den Clientbereich anpassen ?

Beste Grüße

Flapsi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.02.2006, 09:06 Uhr
~antalia
Gast


vielleicht so:


C++:
CDC dcPrint;
dcPrint.StretchBlt(0, 0, nWidth*3, nHeight*3, pDC, 0, 0, nWidth, nHeight, SRCCOPY);

 
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: