• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

基于CFormView的打印问题?

hyllp 2002-05-13 03:05:50
我写了个SDI的程序,选择了AppWizard 中的“Printing and Print preview ”,基类选择了CFormView,出现的问题如下:我在AppWizard 所默认生成的对话框上加上List Control,通过自己的写的程序成功的将数据在List Control显示出来了,但是当我选择“打印/打印预览”的时候,却不能够将List Control中的数据打印/打印预览出来,十万火急,希望大家帮帮忙啊!!
...全文
27 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
具体一点?
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-13 03:05
社区公告

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