谁有用vc打印图片的源代码啊([email protected]).急。。

解决方案 »

  1.   

    好像不可以吧,只能打印控件内的,你这种就好像是让照相机把自己也拍下来,
    但是it is impossible:)
      

  2.   

    可以打印一个.bmp的图形文件吗?
      

  3.   

    打印机其实就是一个CDC,你把bmp选择到mem dc,然后用BitBlt拷贝到打印机的CDC就打印出来了。
    很容易的。打印机的CDC还可以随便往上面画线条,就好像窗口的CDC一样。============================================================================
    提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
    http://alphasun.betajin.com/   遇到问题可以给我发消息,给我发信息时请附带原帖地址
    DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
      

  4.   

    www.vckbase.com
    上面很多的。
      

  5.   

    以下是我的代码: ScreenSnap Snap;//抓屏
    HBITMAP Image;
    Image=Snap.CopyScreenTOBitmap(this,CRect(5,40,960,560));
    Snap.SaveBitmapToFile(Image,"RongHua_Su");
    //以上的代码经测试,能正常运行
    //以下是打印
             CPrintDialog dlg(FALSE,PD_NOPAGENUMS|PD_NOSELECTION,this);
    if(dlg.DoModal() == IDOK)
    {
    dlg.GetDevMode()->dmOrientation = 1;
    dlg.DoModal();
    HDC hdc = dlg.GetPrinterDC();
    CDC *pdc;
    pdc = CDC::FromHandle(hdc);
    pdc->StartDoc("abc");
    pdc->StartPage(); CBitmap* bm = CBitmap::FromHandle(Image);
    CDC *dc;
    dc->CreateCompatibleDC(pdc);
    dc->SelectObject(bm);
    pdc->BitBlt(0,0,1600,1600,dc,0,0,SRCCOPY); //运行该语句就出错,提示什么内址地址不能读,
    pdc->MoveTo(100,100);
    pdc->LineTo(200,200);
    pdc->EndPage();
    pdc->EndDoc(); 

      

  6.   

    这里就要出错了
    CDC *dc;
    dc->CreateCompatibleDC(pdc);
    dc->SelectObject(bm);
    应该改成
    CDC dc;
    dc.CreateCompatibleDC(pdc);
    dc.SelectObject(bm);否则对象不存在