谁有代码?
或者哪位高手说说啊,比较急,这个星期就要搞定了,还要考虑jpg的格式呢,不过现在我就先搞好bmp的。

解决方案 »

  1.   

    StartPage()
    StartDoc()
    EndPage()
    PrintDlg()
    你参考一下这些函数api吧,我也没做过
      

  2.   

    跟显示差不多。1。先取得打印机的CDC或HDC。
    2。创建Mem DC。(CreateCompatibleDC(&dc))
    3。将CBitmap选入Mem DC。
    4。Bitblt(...)将Mem DC拷入打印机DC。
      

  3.   

    honglunxu() ,lazycat818(lazycat818):我现在也是这样做啊,但是只能显示textout和CDC里的画图函数,bitmap的好像没有load进去。而且,CDC画图的大小通过SetMapMode(MM_ANISOTROPIC)来建立坐标映射可以做到大小正常的,但是textout的字体特小。关于load CBitmap的方法我用了好几种了。有直接load一个资源的,有从硬盘load近来的,但是都不行。如果这个CDC用于显示的话,都可以正常Bitblt和StretchBlt,我试过了,但是用于打印就不行,非常郁闷。谁帮我解决了,我给200分啊。
      

  4.   

    我想的效果就是调用一个函数就可以打印一个指定的CBitmap,郁闷啊。
      

  5.   

    这是startpage后的代码,不知道为什么不能显示图片。/************************************************************************/
    CDC dcMem; HBITMAP hbitmap;
    CBitmap cbitmap;
    hbitmap=(HBITMAP)LoadImage(NULL,"c:\\testbmp.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    cbitmap.Attach(hbitmap);
    dcMem.CreateCompatibleDC(&dcPrinter);
    dcMem.SelectObject(&cbitmap); // HBITMAP m_hbmp;
    // CBitmap bmpPrint;
    // bmpPrint.LoadBitmap(IDB_BITMAP1);  //m_hBmp???
    // CBitmap* pBmp = (CBitmap*)dcMem.SelectObject(bmpPrint);
    dcPrinter.BitBlt(0,0,1600,1600,&dcMem,0,0,SRCCOPY);
    // dcPrinter.StretchBlt(0,0,600,600,&dcMem,0,0,320,240,SRCCOPY);
    // dcPrinter.SelectObject(pBmp);
    /************************************************************************/
    dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);
    dcPrinter.MoveTo(50,50);
    dcPrinter.LineTo(100,100);
    dcPrinter.Ellipse(100,100,500,500);
    dcPrinter.EndPage();
    dcPrinter.EndDoc();
    dcPrinter.SelectObject(pOldFont);