谁有用vc打印图片的源代码啊([email protected]).急。。。。。 谁有用vc打印图片的源代码啊([email protected]).急。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好像不可以吧,只能打印控件内的,你这种就好像是让照相机把自己也拍下来,但是it is impossible:) 可以打印一个.bmp的图形文件吗? 打印机其实就是一个CDC,你把bmp选择到mem dc,然后用BitBlt拷贝到打印机的CDC就打印出来了。很容易的。打印机的CDC还可以随便往上面画线条,就好像窗口的CDC一样。============================================================================提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题http://alphasun.betajin.com/ 遇到问题可以给我发消息,给我发信息时请附带原帖地址DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析 www.vckbase.com上面很多的。 以下是我的代码: 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(); } 这里就要出错了 CDC *dc; dc->CreateCompatibleDC(pdc); dc->SelectObject(bm);应该改成 CDC dc; dc.CreateCompatibleDC(pdc); dc.SelectObject(bm);否则对象不存在 征集个文件传输思路? 请教一个线程通讯问题 实现用鼠标中键 控制 PictureBox的滚动条 的上下(左右)滚动 mfc寫的控件放在網頁上,在客戶端總下載安裝不了 字符串 第四个100分,求取同一个简单问题的答案。还是创建子窗口问题。 工具栏的图形列表如何生成? 小弟初学DCOM,看了一遍《COM原理与应用》一书,发现里面全都是原理,DCOM章节无一行实际代码,那位大虾可否提供DCOM代码实例,在此感激 怎样做一个淡入淡出的对话框? Nimda病毒的讨论和我的疑问 vs.net中的msdn与单独的msdn内容是否一样 ★将窗口弄成可停靠的,该怎么实现啊?好难啊
但是it is impossible:)
很容易的。打印机的CDC还可以随便往上面画线条,就好像窗口的CDC一样。============================================================================
提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
http://alphasun.betajin.com/ 遇到问题可以给我发消息,给我发信息时请附带原帖地址
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
上面很多的。
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();
}
CDC *dc;
dc->CreateCompatibleDC(pdc);
dc->SelectObject(bm);
应该改成
CDC dc;
dc.CreateCompatibleDC(pdc);
dc.SelectObject(bm);否则对象不存在