PrintPreview对话框中的“打印”按钮不起作用

时间:2016-03-08 12:23:43

标签: mfc

PrintPreview对话框中按下打印按钮后,没有任何结果。 我认为按 PrintPreview对话框中的打印按钮后会出现打印对话框,但事实并非如此。 它只是回到主屏幕。

P.S。

这不是我开始项目时已经完成的功能。 我手动添加了这个函数,因为我使用了另一个源自 CScrollView 的视图,并且未使用原始视图( CMyView )。

以下是代码:

void SignalView::OnFilePrintPreview()
{
    PRINTDLG printDlg = { 0 };
    printDlg.lStructSize = sizeof(PRINTDLG);
    if (AfxGetApp()->GetPrinterDeviceDefaults(&printDlg))
    {
        if (printDlg.hDevMode)
        {
            DEVMODE *dm = (DEVMODE*)::GlobalLock(printDlg.hDevMode);
            if (dm)
            {
                dm->dmFields |= DM_ORIENTATION;
                dm->dmOrientation = DMORIENT_LANDSCAPE;
                ::GlobalUnlock(printDlg.hDevMode);
            }
        }
    }
    CScrollView::OnFilePrintPreview();
}

BOOL SignalView::OnPreparePrinting(CPrintInfo* pInfo)
{
    __try {
        pInfo->SetMinPage(1);
        pInfo->SetMaxPage(1);
    //  pInfo->m_bPreview = TRUE;
        return DoPreparePrinting(pInfo);
    }__except (GetExceptionCode()==EXCEPTION_ACCESS_VIOLATION){
        AfxMessageBox(_T("Printer Error!"));
        return FALSE; // Fail!
    }
}

void SignalView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{

}

void SignalView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{

}

有什么我错过的吗?

0 个答案:

没有答案