我用截屏截取了屏幕的一部分再内存DC中,现在我要把他打印出来应该怎么做呀???进来的都有分
CRect rect;
m_Chart1.GetClientRect(&rect);//m_Chart1是我要打印的控件
CDC memDC,memDC1;
CClientDC srcDC(this);
CBitmap Srcbmp;
memDC.CreateCompatibleDC(&srcDC);
Srcbmp.CreateCompatibleBitmap(&srcDC,rect.Width(),rect.Height());
CBitmap *pOld=memDC.SelectObject(&Srcbmp);
memDC.BitBlt(0,0,rect.Width(),rect.Height(),&srcDC,0,0,SRCCOPY);
memDC.SelectObject(pOld);
CDC dc;
CPrintDialog dlg(false);
if(dlg.DoModal()!=IDOK)
return;
else
dc.Attach(dlg.GetPrinterDC());
memDC1.CreateCompatibleDC(&dc);
CBitmap *pOld1=memDC1.SelectObject(&Srcbmp);
CRect rect1;
GetClientRect(&rect1);
dc.StartDoc("test");
dc.StartPage();
dc.StretchB(rect1.left,rect1.top,rect1.right,rect1.bottom,
&memDC1,0,0,rect.Width(),rect.Height(),SRCCOPY);
//这里为什么打印不出来呀??
dc.EndDoc();
memDC1.SelectObject(pOld1);
谢谢大家!!!
相关推荐
16*16点阵,液晶取模软件
点阵取模,液晶取模,软件操作简单,可以用来液晶字符取模和图形的取模也可以自定义模型的小,还可以图片取模。
使用MFC库实现屏幕捕捉功能
Microsoft Foundation Classes (MFC) 是一个C++类库,用于简化Windows应用程序的开发。它封装了Windows API,使得开发者能够通过面向对象的方式编写Windows程序。MFC在1992年随Visual C++ 1.0发布,自那时起,它一直是开发Windows桌面应用程序的重要工具。接下来,需要确定想要捕获屏幕的哪一部分。如果是整个屏幕,则可以使用函数获取屏幕的宽度和高度。这段代码将获取屏幕的尺寸,并定义一个矩形区域rect。
多功能自制截屏工具设计与实现
在现代桌面应用程序中,用户对操作效率的要求越来越高。特别是在截屏工具这类高频交互的轻量级应用中,如何实现快速、无干扰的触发方式成为用户体验的关键因素之一。传统的菜单点击或按钮触发已无法满足高效工作流的需求,而通过全局热键(Global Hotkey)实现一键截图,则是提升响应速度和使用便捷性的核心手段。本章将深入剖析 Windows 平台下全局热键的注册与监听机制,涵盖底层 API 的调用逻辑、消息循环的协同处理、热键冲突规避策略以及跨权限环境下的稳定性保障方案。
Win32 API 打印
重温 Win32 API ----- 截屏指定窗口并打印 http://blog.csdn.net/smstong/article/details/42082039 朋友说在一个VC++6.0开发的项目中要加入打印窗口的功能,让帮忙写个代码供其调用。这么老的IDE当然不想碰了,而且也不喜欢MFC笨拙不清晰的封装,所以决定采用纯Win32 API,然后用C++ 类简单封装一下。
lcd汉字取模软件
自己使用多年,先分享出来,给有需要的朋友。可以生成各种大小如:12*12, 16*16的汉字点阵。



