<strong>	//获取桌面窗体的CDC
CDC *pdeskdc = GetDesktopWindow()->GetDC();
CRect re;
//获取窗体的大小
GetDesktopWindow()->GetClientRect(&re);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pdeskdc , re.Width() , re.Height());
//创建一个兼容的内存画板
CDC memorydc;
memorydc.CreateCompatibleDC(pdeskdc); //选中画笔
CBitmap *pold = memorydc.SelectObject(&bmp); //绘制图像
memorydc.BitBlt(0,0,re.Width() ,re.Height(), pdeskdc , 0 ,0 ,SRCCOPY) ; //获取鼠标位置,然后加入鼠标图像
CPoint po;
GetCursorPos(&po);
HICON hinco = (HICON)GetCursor();
memorydc.DrawIcon(po.x-10 , po.y - 10 , hinco);
//选中原来的画笔
memorydc.SelectObject(pold);
BITMAP bit;
bmp.GetBitmap(&bit);
// DWORD size = bit.bmWidth * bit.bmHeight ; //定义 图像大小(单位:byte)
DWORD size = bit.bmWidthBytes * bit.bmHeight ;
LPSTR lpdata = (LPSTR)GlobalAlloc(GPTR , size) ; //后面是创建一个bmp文件的必须文件头,想要了解能够參考msdn BITMAPINFOHEADER pbitinfo;
pbitinfo.biBitCount = 24 ;
pbitinfo.biClrImportant = 0;
pbitinfo.biCompression = BI_RGB ;
pbitinfo.biHeight = bit.bmHeight ;
pbitinfo.biPlanes = 1 ;
pbitinfo.biSize = sizeof(BITMAPINFOHEADER);
pbitinfo.biSizeImage =size;
pbitinfo.biWidth = bit.bmWidth;
pbitinfo.biXPelsPerMeter = 0;
pbitinfo.biYPelsPerMeter = 0 ; GetDIBits(pdeskdc->m_hDC , bmp , 0 , pbitinfo.biHeight , lpdata ,
(BITMAPINFO*)&pbitinfo,DIB_RGB_COLORS); BITMAPFILEHEADER bfh;
bfh.bfReserved1 = bfh.bfReserved2 = 0 ;
bfh.bfType = ((WORD)('M'<< 8)|'B');
bfh.bfSize = 54 + size ;
bfh.bfOffBits = 54 ; //写入文件 CFile file;
if ( file.Open("1.bmp" , CFile::modeCreate|CFile::modeWrite) )
{
file.WriteHuge( &bfh , sizeof(BITMAPFILEHEADER) );
file.WriteHuge(&pbitinfo , sizeof(BITMAPINFOHEADER));
file.WriteHuge(lpdata , size);
file.Close();
}
GlobalFree(lpdata);</strong>

c++截取屏幕图片并保存(函数代码实现)的更多相关文章

  1. Android 截取屏幕图片并保存

    Android市场上有很多屏幕截图软件,把当前屏幕截取出来并保存,这一节我们就来看看屏幕截图的具体实现. 操作步骤: 1.创建一片屏幕大小的缓冲区,用于存放屏幕大小的图片 Bitmap bitmap ...

  2. 【Android】Android实现截取当前屏幕图片并保存至SDCard

    功能 1. 实现截取当前屏幕的功能. 2. 把截取的图片保存到SDCard中的某个目录文件夹下面. Java代码 package com.app.test01; import java.io.File ...

  3. selenium - 截取页面图片和截取某个元素的图

    1.截取页面图片并保存 在测试过程中,是有必要截图,特别是遇到错误的时候进行截图. # coding:utf-8 from time import sleep from PIL import Imag ...

  4. Python+selenium之截图图片并保存截取的图片

    本文转载:http://blog.csdn.net/u011541946/article/details/70141488 http://www.cnblogs.com/timsheng/archiv ...

  5. php获取网页中图片并保存到本地的代码

    php获取网页中图片并保存到本地的代码,将网页中图片保存本地文件夹: <?php /** * 获取网页中图片,并保存至本地 * by www.jbxue.com */ header(" ...

  6. php ffmpeg截取视频第一帧保存为图片的方法

    php ffmpeg截取视频第一帧保存为图片的方法 <pre> $xiangmupath = $this->getxiangmupath(); $filename = 'chengs ...

  7. PHP的图片转base64,base64图片转换为图片并保存代码

    打卡记录 1. 图片转base64代码 /*图片转换为 base64格式编码*/ $img = 'images/avatar.jpg'; $base64_img = base64EncodeImage ...

  8. PHP将图片转base64编码以及base64图片转换为图片并保存代码

    图片转base64编码 /*图片转换为 base64格式编码*/ $img = 'uploads/01.png'; $base64_img = base64EncodeImage($img); ech ...

  9. Android实例-程序界面内截取屏幕(XE8+小米2)

    结果: 1.只能截取程序界面内的图片. 2.图片有点不清楚,自己设置清楚度. 实例代码: unit Unit1; interface uses System.SysUtils, System.Type ...

随机推荐

  1. Windows不能再本地计算机启动Apache

    1.显示的错误如下: 2.解决的方法是: 在运行中切换到你的apache的bin目录下,执行httpd.exe,看有什么提示 3.根据错误提示,修改相应的信息,比如我的是ServerRoot must ...

  2. shell 1变量注意点

    定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样. 删除变量 使用 un ...

  3. mybaits不能出现小于号

    org.xml.sax.SAXParseException; lineNumber: 146; columnNumber: 54; The content of elements must consi ...

  4. UIActionViewController 详解 iOS8

    iOS8推出了几个新的“controller”,主要是把类似之前的UIAlertView变成了UIAlertController,这不经意的改变,貌似把我之前理解的“controller”一下子推翻了 ...

  5. BASLER 镜头选型白皮书

    本文翻译自Basler镜头选型白皮书 有许多方法来进行镜头选型.本文将会讨论其中的指导原则,以帮助你在项目中选择合适的镜头.我们将讨论许多镜头的基本概念,比如镜头接口.图像大小.放大率.焦距.F数和光 ...

  6. Uva_11916 Emoogle Grid

    题目链接 题意: 有个N X M的棋盘, 有K种颜色, 有B个不可涂色的位置, 共有R种涂色方案. 1)每个可涂色的位置必须涂上一种颜色 2)不可涂色位置不能涂色 3)每个位置必须从K种颜色中选出一种 ...

  7. 线性表之顺序存储结构(C语言动态数组实现)

    线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an) 链 ...

  8. eclipse 启动tomcat报Spring错误 Error creating bean with name 'serviceOrderBiz': Injection of autowired dependencies failed

    启动tomcat报异常,提示Sring无法创建serviceOrderBiz(第一行红字),继续看是因为有一个自动注入的字段无法注入ModuleInterfaceBiz(第二行红字),检查servic ...

  9. List Of All Machine Learning Sorted By Citation

    List Of All Machine Learning Sorted By Citation With > 300 citations 2013-10-10 See Citation Anal ...

  10. node 与php整合

    http://wenku.baidu.com/view/c1810c18b7360b4c2e3f6479.html http://www.xiaocai.name/post/cf1f9_7b6507 ...