Windows 实现桌面截屏并保存为.jpg

/*********************************************************************************************/
/*   时        间:2016年3月29日                                                             */
/*   版        本:1.0                                                                       */
/*   编        著:QWTTDTS                                                                   */
/*   作        用:桌面截屏                                                                  */
/*   最后修改时间:2016年3月29日                                                             */
/*   状        态:完成                                                                      */
/*********************************************************************************************/


//=============================== 头 文 件 =======================================================
#include<graphics.h>                     //展示结果
#include<atlimage.h>                     //函数CImage
#include<Windows.h>                      //获取桌面的宽高函数


using namespace ATL;




//================================ 主 函 数 ======================================================
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
//桌面的宽和高
int iWith, iHeght;
//获取桌面的宽高并赋值
iWith = GetSystemMetrics(SM_CXSCREEN);
iHeght = GetSystemMetrics(SM_CYSCREEN);

//取得桌面DC,在这里DC是空
HDC habc1 = GetDC(NULL);
//定义一个和桌面大小的img对象
IMAGE img(iWith, iHeght);
//把img图像给桌面DC
HDC hbac2 = GetImageHDC(&img);
//复制区域hbac2到habc1中,赋值给DC,使DC为桌面图
BitBlt(hbac2, 0, 0, iWith, iHeght, habc1, 0, 0, SRCCOPY);

HBITMAP hBC = (HBITMAP)::GetCurrentObject(hbac2, OBJ_BITMAP);
//将HBITMAP绑定到CImage对象
CImage  img1;
img1.Attach(hBC);


//保存为jpg
img1.Save(_T("桌面截图.jpg"));

//展示结果
initgraph(iWith, iHeght);
putimage(0, 0, &img);
Sleep(10000);
closegraph();
return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值