help!关于VC下的打印!

ChouZi 2000-05-24 09:17:00
各位朋友请问如何实现在VC下的图形打印呢?我已经将代码加入OnPrint()了!
但就是只打出了一个空白页!难道数据打印和图形打印有区别吗?
...全文
133 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kitty 2000-05-24
  • 打赏
  • 举报
回复
把你的程序代码拿来看看,或许能找到原因
wpkiller 2000-05-24
  • 打赏
  • 举报
回复
vc 有内嵌的打印功能,应将打印代码加入到你的 view 的 OnDraw 代码中。可以判断是否画在打印机的 DC 上。

在一般窗口中画图,与在打印机的画布上画图方法没有什么两样。只是要注意 DeviceCaps。
bigjim 2000-05-24
  • 打赏
  • 举报
回复
我刚好写过一个打印表格的程序.画图确实与写文本没有什么两样.但是打印与在屏幕上画图就有区别了.要在VC中使用打印机,最好使用Document/View结构,并支持打印.
打印主要使用几个函数.

BOOL CMyView::OnPreparePrinting()
{
return CFormView::DoPreparePrinting();
}
这个函数可以调用基类,比如上面的这样.
void CMyView::OnBeginPrinting(CDC *pDC,CPrintInfo *pInfo)
{
}
这里主要准备打印,比如生成自己的画笔,创建自己的字体等,也要设置打印页面的范围.
如pInfo->m_rectDraw.SetRect(0,0,GetDeviceCaps(...),GetDeviceCaps(...))
具体的参数我忘了,但可以查MSDN.
void CMyView::OnPrint(CDC *pDC,CPrintInfo *pInfo)
{
}
这是打印的主要部分.刚开始自己要设置一下映射模式,(一般用MM_TWIPS),然后就可以象写屏幕一样打印了。需要注意的是MM_TWIPS的坐标系统与在写屏幕是使用的MM_TEXT是不一样的.
void CMyView::OnEndPrinting(...)
这里主要是扫尾工作,比如恢复系统的画笔,字体,清除自己创建的对象等。
我手边少了一本手册...否则我会说的更加详细.如果不明白,再联系吧.
bigjim999@yeah.net

16,471

社区成员

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

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

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