Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » diesmal hab ich nen Druckfehler..........!

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
25.01.2004, 12:16 Uhr
Darky



hab n sdi-cview projekt erstellt und einige cformview formulare eingefügt,funktioniert alles auch recht super(bis auf tooltips)!
nun wollt ich die druckroutine fertig machen und siehe da vc6 hat in die formulare nichts eingefügt!
also hab ich

die funktionen angelegt
virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);

und die 3 commands eingefügt:
BEGIN_MESSAGE_MAP(Crezept, CFormView)
//{{AFX_MSG_MAP(Crezept)
//}}AFX_MSG_MAP
// Standard-Druckbefehle
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()


aber irgendwas stimmt nicht er versucht zwar zu drucken aber findet den drucker wie es scheint nicht (assert fehler) !



hier bleibt er stecken!

C++:
#ifdef _DEBUG
    if (m_pPreviewInfo->m_pPD->m_pd.hDC == NULL)
    {
        TRACE0("Error: hDC not set for printing --\n");
        TRACE0("\tDid you remember to call DoPreparePrinting?\n");
        ASSERT(FALSE);      // common mistake gets trapped here
    }
#endif //_DEBUG

    m_dcPrint.Attach(m_pPreviewInfo->m_pPD->m_pd.hDC);
    m_pPreviewDC->SetAttribDC(m_pPreviewInfo->m_pPD->m_pd.hDC);
    m_pPreviewDC->m_bPrinting = TRUE;
    m_dcPrint.m_bPrinting = TRUE;

    m_dcPrint.SaveDC();     // Save pristine state of DC

    HDC hDC = ::GetDC(m_hWnd);
    m_pPreviewDC->SetOutputDC(hDC);
    m_pPrintView->OnBeginPrinting(m_pPreviewDC, m_pPreviewInfo);
    m_pPreviewDC->ReleaseOutputDC();
    ::ReleaseDC(m_hWnd, hDC);

    m_dcPrint.RestoreDC(-1);    // restore to untouched state




ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
steht ja in der app-klasse

muss ich global noch etwas im projekt verankern????

Dieser Post wurde am 25.01.2004 um 12:19 Uhr von Darky editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.01.2004, 10:37 Uhr
Darky



hat keiner ne ahnung was da noch fehlt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.01.2004, 14:38 Uhr
Darky



hab mal rumbrobiert!

bei ner normalen projekterstellung funzt das drucken super!!
nimmt man dann ein neues formular hinzu und ändert die initinstance
C++:
    // Dokumentvorlagen der Anwendung registrieren. Dokumentvorlagen
    //  dienen als Verbindung zwischen Dokumenten, Rahmenfenstern und Ansichten.

    CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
        IDR_MAINFRAME,
        RUNTIME_CLASS(CMftDoc),
        RUNTIME_CLASS(CMainFrame),       // Haupt-SDI-Rahmenfenster
        RUNTIME_CLASS(neufenster2));
    AddDocTemplate(pDocTemplate);



auf das neue formular und trägt all das was in der generierten CFormView-klasse steht in die neue formularklasse ein --> ist ein drucken trotzdem nicht mehr möglich !
obwohl es keine unterschiede zwischen den klassen gibt kann die neue CFormView keinen drucker ansteuern!(aso die von c generierte klasse kann auch weiterhin drucken)


wo und wie kann ich nen druck aus meiner neuen klasse einleiten ohne ASSERT Fehler??
Wo definiert C++ die Document-druckzuweisung

Dieser Post wurde am 26.01.2004 um 14:39 Uhr von Darky editiert.
 
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: