在 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)
{
}
有什么我错过的吗?