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);
}

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

相关推荐
6Hzlia2 分钟前
【Classic 150 刷题计划】 LeetCode 205. 同构字符串 | C++ 双向绑定与哈希表映射
c++·算法·leetcode
神仙别闹6 小时前
基于 C++ 实现(控制台)学生成绩管理系统
开发语言·c++
会周易的程序员6 小时前
5 节点边缘冗余方案(上):基于 aiRaft 的物联网高可用控制面设计
c++·分布式·物联网·raft·iot·共识
qq_199886879 小时前
第6板块·第4节:构建系统与多文件项目
c++·人工智能·gpu算力
汉克老师11 小时前
GESP2026年9月认证C++三级( 第三部分编程题(2、分割字符串))精讲
c++·gesp·小学生·学c++编程
估值探索者11 小时前
【Python量化系统工程化 #08】关了 SSH 就停?systemd 让脚本开机自启 + 异常自动拉起
java·c++·人工智能·分类·数据挖掘
天若有情67311 小时前
C++花式魔改!手写头文件复刻Java语法,彻底打破编码思维定式
java·c++·语言做语言·jac++
qq_1998868711 小时前
第7板块·第3节:CUTLASS 的 GEMM 实现与优化策略
c++·人工智能·gpu算力·cuda
hetao173383712 小时前
2026-09-17 hetao1733837 的刷题记录
c++·算法
shada13 小时前
Boost.Process v2 在旧内核上报 `assign: Bad file descriptor`
c++