为什么预览和打印不一至?

sunqi 2001-03-08 05:29:00
我的程序要打印位图及文字,表格,预览正常,打印时位图不见了。反复研究,实在搞不懂,请大家帮忙。
我做了个测试,用APPWIZARD产生一标准SDI窗口,
在OnPrint写以下代码
CView::OnPrint(pDC, pInfo);
CBitmap icon;
icon.LoadBitmap(IDB_BITMAP1);
CDC dc;
dc.CreateCompatibleDC(NULL);
dc.SelectObject(&icon);
pDC->BitBlt( 0, 0, 100,100,&dc,0,0,SRCCOPY);
结果程序正常打印位图(我的位图小于100*100)位于最左上角
继续我写成
CView::OnPrint(pDC, pInfo);
CBitmap icon;
icon.LoadBitmap(IDB_BITMAPFAX);
CDC dc;
dc.CreateCompatibleDC(NULL);
dc.SelectObject(&icon);
pDC->BitBlt( 0, 0, 100,100,&dc,0,0,SRCCOPY);
pDC->BitBlt( 500, 0, 100,100,&dc,0,0,SRCCOPY);
pDC->BitBlt( 0, 500, 100,100,&dc,0,0,SRCCOPY);
pDC->BitBlt(-500, 0, 100,100,&dc,0,0,SRCCOPY);
pDC->BitBlt( 0,-500, 100,100,&dc,0,0,SRCCOPY);
打印一个五个图标,应该十字排开,我希望能打印出三个,结果预览与我想象一致
而打印出的只有两个,上下排列,坐标分别为(0,0),(0,500);
当时(500,0)的为什么打印不出呢?
再增加代码
pDC->BitBlt( 500, 500, 100,100,&dc,0,0,SRCCOPY);
也只能预览。


help me !


...全文
89 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunqi 2001-03-09
  • 打赏
  • 举报
回复
谁知道,who can tell me?
sunqi 2001-03-09
  • 打赏
  • 举报
回复
我的程序原来就是用的StretchDIBits,为了测试方便才这样写的。将以上测试程序改成
StretchDIBits,还是不行。能发个简单示例给我吗,只要能在指定位置打印资源中的位图即可,多谢了。
gbstar2021 2001-03-08
  • 打赏
  • 举报
回复
CDC::BitBlt 在打印机上打印位图会不正常
要使用 ::StretchDIBits 才能打印

16,550

社区成员

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

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

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