VC++ 实现简单的桌面截图

  使用了EasyX图像库,使用方法请参考:VC++ 制作一个简易的控制台时钟应用

  简单的桌面截图代码:

//
// 程序名称:实现屏幕桌面的简单截图
// 编译环境:Visual Studio,EasyX_20151015(beta)
// 作    者:shuai.qiao@wellintech.com
// 创建日期:2016-11-24
// 项目类型:Win32 Application
//

// 头文件
#include <graphics.h>

// 函数声明
void DesktopCapture(IMAGE *pimg);

// 主函数
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    IMAGE img;                                            // 定义IMAGE对象
    DesktopCapture( &img );                               // 调用抓取桌面图像的函数
    initgraph(1440, 900);                                 // 创建绘图窗口(根据实际屏幕调整)
    putimage(0, 0, &img);                                 // 在窗口中显示 IMAGE 中保存的桌面图像

    while(!(GetAsyncKeyState(VK_ESCAPE) & 0x8000))        // 按ESC键退出
        Sleep(20);

    closegraph();
    return 0;
}

// 抓取桌面图像到 *pimg 对象中
void DesktopCapture(IMAGE *pimg)
{
    // 通过 Windows API 获取桌面的宽高
    int scale = 1;                                        // 缩放比例(1:全屏)
    int w = GetSystemMetrics(SM_CXSCREEN) / scale;
    int h = GetSystemMetrics(SM_CYSCREEN) / scale;

    Resize(pimg, w, h);    
    HDC srcDC = GetDC(NULL);                            // 获取桌面 DC
    HDC dstDC = GetImageHDC(pimg);                      // 获取 IMAGE 对象的 DC
    BitBlt(dstDC, 0, 0, w, h, srcDC, 0, 0, SRCCOPY);    // 在两个 DC 之间执行图像拷贝,将桌面抓图拷贝到 IMAGE 对象里面  
}

  运行效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值