c++实现屏幕截图功能

  

本文实例为大家分享了c++实现全屏截图功能的具体代码,供大家参考,具体内容如下

  

最近维护的项目,在某些情况下,光有日志还不行,于是添加了截图功能,特定情况下,会自动截的图,辅助分析,从而改进程序。以下是截图实现代码。

        空白CDemoDlg:截图(空白)   {   CWnd * pDesktop=GetDesktopWindow ();   美国疾病控制与预防中心* pdeskdc=pDesktop→GetDC ();   绘图用的矩形类再保险;//获取窗口的大小   pDesktop→GetClientRect(和re);   CBitmap bmp;   bmp。CreateCompatibleBitmap (pdeskdc re.Width (), re.Height ());//创建一个兼容的内存画板   美国疾病控制与预防中心memorydc;   memorydc.CreateCompatibleDC (pdeskdc);//选中画笔   CBitmap * pold=memorydc.SelectObject (, bmp);//绘制图像   memorydc。BitBlt (0, 0, re.Width (), re.Height (), pdeskdc, 0, 0, SRCCOPY);//获取鼠标位置,然后添加鼠标图像   CPoint阿宝;   GetCursorPos(和po);   HICON hinco=(HICON) GetCursor ();   memorydc.DrawIcon (po。x - 10,阿宝。y - 10, hinco);//选中原来的画笔   memorydc.SelectObject (pold);   位图位;   bmp.GetBitmap(和一些);//定义图像大小(单位:字节)   双字大?mWidthBytes * bit.bmHeight;   [lpdata=https://www.yisu.com/zixun/(你)GlobalAlloc (GPTR、大小);//后面是创建一个bmp文件的必须文件头   BITMAPINFOHEADER pbitinfo;   pbitinfo。biBitCount=24;   pbitinfo。biClrImportant=0;   pbitinfo。biCompression=BI_RGB;   pbitinfo。biHeight=bit.bmHeight;   pbitinfo。双翼飞机=1;   pbitinfo。biSize=sizeof (BITMAPINFOHEADER);   pbitinfo。biSizeImage=大小;   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=((词)(“M”& lt; & lt;8)| " B ");   bfh。bfSize=大小+ 54;   bfh。bfOffBits=54;//写入文件   用文件;   装运箱strFileName (GetAppPathW () .c_str ());   strFileName +=_T(截图\ \ ");   CreateDirectory (LPCTSTR strFileName, NULL);   CTime t=CTime: GetCurrentTime ();   装运箱tt=t.Format (Y“% - % - % d_ % H % m - % S”);   strFileName +=tt;   strFileName +=_T (bmp格式);   如果(file.Open ((LPCTSTR) strFileName用:内容|用:modeWrite))   {   file.Write(及bfh sizeof (BITMAPFILEHEADER));   file.Write(及pbitinfo sizeof (BITMAPINFOHEADER));   文件。写(lpdata、大小);   file.Close ();   }   GlobalFree (lpdata);   }      之前      

代码注释详尽,我就不多说啥了,保存为bmp无损文件,体积会有些大,朋友可以转化为png格式保存哦。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

c++实现屏幕截图功能