截屏并生成BMP文件
来源:互联网 发布:淘宝无货空挂的处罚 编辑:程序博客网 时间:2024/04/29 16:20
CDC dc;
dc.CreateDC(_T("DISPLAY"),NULL,NULL,NULL);
CBitmap bm;
int Width=GetSystemMetrics(SM_CXSCREEN);
int Height=GetSystemMetrics(SM_CYSCREEN);
bm.CreateCompatibleBitmap(&dc,Width,Height);
CDC tdc;
tdc.CreateCompatibleDC(&dc);
CBitmap*pOld=tdc.SelectObject(&bm);
tdc.BitBlt(0,0,Width,Height,&dc,0,0,SRCCOPY);
tdc.SelectObject(pOld);
BITMAP btm;
bm.GetBitmap(&btm);
DWORD size=btm.bmWidthBytes*btm.bmHeight;
LPSTR lpData=(LPSTR)GlobalAllocPtr(GPTR,size);
/////////////////////////////////////////////
BITMAPINFOHEADER bih;
bih.biBitCount=btm.bmBitsPixel;
bih.biClrImportant=0;
bih.biClrUsed=0;
bih.biCompression=0;
bih.biHeight=btm.bmHeight;
bih.biPlanes=1;
bih.biSize=sizeof(BITMAPINFOHEADER);
bih.biSizeImage=size;
bih.biWidth=btm.bmWidth;
bih.biXPelsPerMeter=0;
bih.biYPelsPerMeter=0;
///////////////////////////////////
GetDIBits(dc,bm,0,bih.biHeight,lpData,(BITMAPINFO*)&bih,DIB_RGB_COLORS);
// bm.GetBitmapBits(size,lpData); //此函数在处理5-5-5模式的16位色下会出现颜色混乱
//////////////////////////////
static int filecount=0;
CString name = _T("c://pict.bmp");
BITMAPFILEHEADER bfh;
bfh.bfReserved1=bfh.bfReserved2=0;
bfh.bfType=((WORD)('M'<< 8)|'B');
bfh.bfSize=54+size;
bfh.bfOffBits=54;
CFile bf;
if(bf.Open(name,CFile::modeCreate|CFile::modeWrite))
{
bf.Write(&bfh,sizeof(BITMAPFILEHEADER));
bf.Write(&bih,sizeof(BITMAPINFOHEADER));
bf.Write(lpData,size);
bf.Close();
//nCount++;
}
GlobalFreePtr(lpData);
UpdateData(FALSE);
- 截屏并生成BMP文件
- 如何实现WinCE截屏并保存为BMP文件
- OpenGL(十) 截屏并保存BMP文件
- bmp文件生成
- 用OpenGL 生成 bmp .bmp 文件
- 根据一个bmp话柄生成bmp文件
- 加载BMP文件 并绘制
- C 语言生成BMP 文件
- 如何生成一个bmp文件
- 如何生成一个bmp文件
- C语言生成BMP文件
- 截屏并保存为bmp格式
- WinCE5.0下如何截屏并保存为BMP文件
- VC/MFC读取BMP文件并显示
- c++创建BMP文件并写入数据
- VC 创建BMP文件并显示
- oracle新建用户并导入bmp文件
- 【OPENGL】读取并显示BMP文件
- jsp页面中窗口关闭,退出的方式
- SetWindowOrg,SetViewportOrg,SetWindowExt,SetViewportExt
- JAVA的一些基础(持续更新)
- 执着一梦
- 键盘
- 截屏并生成BMP文件
- 五味子蜜
- 驾御项目管理的三匹马
- 转贴:白盒测试中的六种覆盖方法
- 小知识:通用病毒分类及病毒命名规则详解
- flex组件小技巧
- php js ajax xml
- 关于安装,不可小视
- 日志级别的选择:Debug、Info、Warn、Error还是Fatal