基于CFormView的打印问题?

hyllp 2002-05-13 03:05:50
我写了个SDI的程序,选择了AppWizard 中的“Printing and Print preview ”,基类选择了CFormView,出现的问题如下:我在AppWizard 所默认生成的对话框上加上List Control,通过自己的写的程序成功的将数据在List Control显示出来了,但是当我选择“打印/打印预览”的时候,却不能够将List Control中的数据打印/打印预览出来,十万火急,希望大家帮帮忙啊!!
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
newlily2000 2002-05-16
  • 打赏
  • 举报
回复
void CPrintView::OnBeginPrinting(CDC* pDC, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
if (m_pMemDC->GetSafeHdc()) m_pMemDC->DeleteDC();
m_pMemDC->CreateCompatibleDC(pDC);

CClientDC dc(this);
CRect rect;
GetClientRect(rect);
m_pMemDC->SetMapMode(MM_ANISOTROPIC);
m_pMemDC->SetWindowExt(dc.GetDeviceCaps(LOGPIXELSX),dc.GetDeviceCaps(LOGPIXELSY));
m_pMemDC->SetViewportExt(m_pMemDC->GetDeviceCaps(LOGPIXELSX),m_pMemDC->GetDeviceCaps(LOGPIXELSY));

if (m_pBm->GetSafeHandle()) m_pBm->DeleteObject();
m_pBm->CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());
m_pMemDC->SelectObject(m_pBm);
dc.DPtoLP(rect); //Convert to Logical Coordinates
m_rect = rect; //Save Logical Coordinates
m_pMemDC->BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);

//This will prevent creation of the Memory device context
//and our Bitmap object a second time.
}
void CPrintView::OnPrint(CDC* pDC, CPrintInfo*)
{
// TODO: add code to print the controls
//The Following code scales the image based on printer resolution.
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(m_pMemDC->GetDeviceCaps(LOGPIXELSX),m_pMemDC->GetDeviceCaps(LOGPIXELSY));
pDC->SetViewportExt(pDC->GetDeviceCaps(LOGPIXELSX),pDC->GetDeviceCaps(LOGPIXELSY));
pDC->StretchBlt(0,0,m_rect.Width(),m_rect.Height(),m_pMemDC,0,0,m_rect.Width(),m_rect.Height(),SRCCOPY);

}
ravehe 2002-05-15
  • 打赏
  • 举报
回复
也就是在CFormView中如何实现打印功能?
ravehe 2002-05-15
  • 打赏
  • 举报
回复
也就是说在CFormView中如何实现打印?
jam1973 2002-05-13
  • 打赏
  • 举报
回复
具体一点?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧