学不会mfc的笨比 2022-09-16 09:20 采纳率: 92.3%
浏览 36
已结题

mfc按钮快速保存图片

有没有快速保存控件上的图片的方法,路径写好了已经,点一下按钮保存一下控件上的图片。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-20 19:23
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/239776
    • 这篇博客你也可以参考下:MFC对话框的状态栏添加进度条
    • 这篇博客也不错, 你可以看下MFC对话框的状态栏添加进度条
    • 除此之外, 这篇博客: MFC图片保存中的 代码如下: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
      void CVoronoi2View::OnFileSaveAs()
      {
      	CClientDC dc(this);
      	CRect rect;
      	//GetClientRect(&rect);  //获取画布大小
      	rect.left = 0;
      	rect.right = boxlength;//boxlength为宏定义
      	rect.top = 0;
      	rect.bottom = boxwidth;
      	HBITMAP hbitmap = CreateCompatibleBitmap(dc, rect.right - rect.left, rect.bottom - rect.top);
      	//创建位图
      	HDC hdc = CreateCompatibleDC(dc);      //创建DC,以便将图像保存为不同的格式
      	HBITMAP hOldMap = (HBITMAP)SelectObject(hdc, hbitmap);
      	//将位图选入DC,并保存返回值 
      	BitBlt(hdc, 0, 0, rect.right - rect.left, rect.bottom - rect.top, dc, 0, 0, SRCCOPY);
      	//将屏幕DC的图像复制到内存DC中
      	CImage image;
      	image.Attach(hbitmap); //将位图转化为一般图像
      	CString saveFilePath;
      	{
      		CString  strFilter = _T("位图文件(*.bmp)|*.bmp|JPEG 图像文件|*.jpg|GIF图像文件 |*.gif| PNG图像文件 |*.png|其他格式(*.*)| *.* ||");
      		CFileDialog dlg(FALSE, _T("bmp"), _T("Picture01.bmp"), NULL, strFilter);
      		if (dlg.DoModal() != IDOK)
      		return;
      		CString strFileName; //文件扩展名
      		CString strExtension;
      		strFileName = dlg.m_ofn.lpstrFile;
      		if (dlg.m_ofn.nFileExtension = 0)               
      		{
      			switch (dlg.m_ofn.nFilterIndex)
      			{
      			case 1:
      				strExtension = "bmp"; break;
      			case 2:
      				strExtension = "jpg"; break;
      			case 3:
      				strExtension = "gif"; break;
      			case 4:
      				strExtension = "png"; break;
      			default:
      				break;
      			}
      			strFileName = strFileName + "." + strExtension;
      		}	
      		saveFilePath = strFileName;     
      	}
      	HRESULT hResult = image.Save(saveFilePath);     //保存图像
      	image.Detach();
      	SelectObject(hdc, hOldMap);
      }

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月30日
  • 已采纳回答 9月22日
  • 创建了问题 9月16日

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器