一个屏幕捕捉的例子

一个屏幕捕捉的例子

ID:20872887

大小:36.50 KB

页数:3页

时间:2018-10-17

一个屏幕捕捉的例子_第1页
一个屏幕捕捉的例子_第2页
一个屏幕捕捉的例子_第3页
资源描述:

《一个屏幕捕捉的例子》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一个屏幕捕捉的例子自己做的一个屏幕捕捉的软件,可以捕捉全屏、窗口和子窗口,可以保存到文件中。程序的主要的代码如下:   根据位图的句柄将位图写入文件:voidCPage1::WriteBmpToFile(HBITMAPhBitmap){   HDChDC=::CreateDC("DISPLAY",NULL,NULL,NULL);   intiBits=::GetDeviceCaps(hDC,BITSPIXEL)*::GetDeviceCaps(hDC,PLANES);//当前分辨率下每个像素所占字节数    ::DeleteDC(hDC);   WORD  wBitCount;

2、  //位图中每个像素所占字节数      if(iBits<=1)  wBitCount=1;   elseif(iBits<=4)  wBitCount=4;   elseif(iBits<=8)  wBitCount=8;   elseif(iBits<=24)  wBitCount=24;   else  wBitCount=iBits;      DWORD  dwPaletteSize=0; //调色板大小,位图中像素字节大小   if(wBitCount<=8)    dwPaletteSize=(1<

3、 BITMAP bm;       //位图属性结构   ::GetObject(hBitmap,sizeof(bm),(LPSTR)&bm);     BITMAPINFOHEADER  bi;      //位图信息头结构     bi.biSize           =sizeof(BITMAPINFOHEADER);    bi.biWidth          =bm.bmWidth;   bi.biHeight         =bm.bmHeight;   bi.biPlanes         =1;   bi.biBitCount       =wBitCo

4、unt;   bi.biCompression    =BI_RGB;//BI_RGB表示位图没有压缩   bi.biSizeImage      =0;   bi.biXPelsPerMeter  =0;   bi.biYPelsPerMeter  =0;   bi.biClrUsed        =0;   bi.biClrImportant   =0;    DWORDdwBmBitsSize=((bm.bmWidth*wBitCount+31)/32)*4*bm.bmHeight;      HANDLEhDib =::GlobalAlloc(GHND,dwBmBit

5、sSize+dwPaletteSize+sizeof(BITMAPINFOHEADER)); //为位图内容分配内存   LPBITMAPINFOHEADERlpbi=(LPBITMAPINFOHEADER)GlobalLock(hDib);   *lpbi=bi;    HANDLEhPal=::GetStockObject(DEFAULT_PALETTE); //处理调色板 HANDLE hOldPal=NULL;   if(hPal)   {  hDC=::GetDC(NULL);  hOldPal=SelectPalette(hDC,(HPALETTE)hPal,FAL

6、SE);  RealizePalette(hDC);   }   ::GetDIBits(hDC,hBitmap,0,(UINT)bm.bmHeight,(LPSTR)lpbi+sizeof(BITMAPINFOHEADER)+dwPaletteSize,(BITMAPINFO*)lpbi,DIB_RGB_COLORS);//获取该调色板下新的像素值   if(hOldPal)//恢复调色板   {  SelectPalette(hDC,(HPALETTE)hOldPal,TRUE);  RealizePalette(hDC);  ::ReleaseDC(NULL,hDC); 

7、  }    BITMAPFILEHEADER  bmfHdr;//位图文件头结构     bmfHdr.bfType=0x4D42; //"BM"  //设置位图文件头 DWORDdwDIBSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+dwPaletteSize+dwBmBitsSize;  bmfHdr.bfSize=dwDIBSize; bmfHdr.bfReserved1=0; bmfHdr.bfReserved2=0;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。