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. |