MFC保存窗口客户区为图片

首先的窗口输出一些内容;

菜单单击函数代码;

cpp 复制代码
void CgetmypicView::OnTestGetmypic()
{
	// TODO: 在此添加命令处理程序代码
	HWND hwnd = this->GetSafeHwnd();
	HDC hDC = ::GetWindowDC(hwnd);//获取DC       

	RECT rect;
	::GetClientRect(hwnd, &rect);//获取客户区大小  
	HDC hDCMem = ::CreateCompatibleDC(hDC);//创建兼容DC  

	HBITMAP hBitMap = ::CreateCompatibleBitmap(hDC, rect.right, rect.bottom);//创建兼容位图  
	HBITMAP hOldMap = (HBITMAP)::SelectObject(hDCMem, hBitMap);//将位图选入DC。并保存返回值  

	::BitBlt(hDCMem, 0, 0, rect.right, rect.bottom, hDC, 0, 0, SRCCOPY);//将图象拷贝到内存DC中  

	CImage image;
	image.Attach(hBitMap);
	image.Save(_T("e://myshige.jpg"));//假设文件后缀为.bmp,则保存为为bmp格式  
	image.Detach();

	::SelectObject(hDCMem, hOldMap);//选入上次的返回值  

									//释放  
	::DeleteObject(hBitMap);
	::DeleteDC(hDCMem);
	::DeleteDC(hDC);
}

单击菜单之后在磁盘生成图片文件,打开如下;

相关推荐
liulun20 小时前
C++ WinRT中的异步
c++·windows
王老师青少年编程21 小时前
2020年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第1题)
c++·题解·真题·初赛·信奥赛·csp-s·提高组
会周易的程序员21 小时前
cNetgate插件架构设计详解 动态库 脚本二开lua, python, javascript
javascript·c++·python·物联网·lua·iot
普通网友21 小时前
C++与Rust交互编程
开发语言·c++·算法
xyty33201 天前
QImageReader 的全局静态锁原理
c++·windows·qt
散峰而望1 天前
【算法竞赛】堆和 priority_queue
开发语言·数据结构·c++·算法·贪心算法·动态规划·推荐算法
adore.9681 天前
2.20 oj83+84+85
c++·复试上机
alexwang2111 天前
B2007 A + B 问题 题解
c++·算法·题解·洛谷
Zik----1 天前
Leetcode2 —— 链表两数相加
数据结构·c++·leetcode·链表·蓝桥杯
白太岁1 天前
Muduo:(3) 线程的封装,线程 ID 的获取、分支预测优化与信号量同步
c++·网络协议·架构·tcp