求一个用VC6.0写的截图程序
要求截图之后能保存该程序不需要GUI图形界面另外跪求大神详细解释下程序思路程序尽量简单多余的功能删掉只要能截图能保存就ok不需要对截下来的图片进行处理...
要求 截图之后能保存 该程序不需要GUI图形界面
另外跪求大神详细解释下程序思路
程序尽量简单 多余的功能删掉 只要能截图能保存就ok不需要对截下来的图片进行处理 展开
另外跪求大神详细解释下程序思路
程序尽量简单 多余的功能删掉 只要能截图能保存就ok不需要对截下来的图片进行处理 展开
展开全部
CRect rect(m_StartPoint.x,m_StartPoint.y,m_EndPoint.x,m_EndPoint.y);
//ClientToScreen(rect);
m_leftdown =0;
Invalidate(FALSE);//更新界面
CClientDC dc(this);
/* HBITMAP bitmap =CreateCompatibleBitmap(dc.m_hDC,rect.Width(),rect.Height());*/
//复制矩形内容
CDC bmemDC;
bmemDC.CreateCompatibleDC(GetDC());
CBitmap bmprect;
bmprect.CreateCompatibleBitmap(GetDC(),rect.Width(),rect.Height());
bmemDC.SelectObject(&bmprect);
/////////////////////////////////////////////////////////////////////////////////////////
BITMAP mbitmap;
//将位图信息填充到一个缓冲区内
bmprect.GetBitmap(&mbitmap);
bmemDC.BitBlt(0,0,mbitmap.bmWidth,mbitmap.bmHeight,GetDC(),m_StartPoint.x,m_StartPoint.y,SRCCOPY);
BITMAPINFOHEADER bih = {0};//位图信息头
bih.biBitCount = mbitmap.bmBitsPixel;//每个像素字节大小
bih.biCompression = BI_RGB;
bih.biHeight = mbitmap.bmHeight;//高度
bih.biPlanes = 1;
bih.biSize = sizeof(BITMAPINFOHEADER);
bih.biSizeImage = mbitmap.bmWidthBytes * mbitmap.bmHeight;//图像数据大小
bih.biWidth = mbitmap.bmWidth;//宽度
BITMAPFILEHEADER bfh = {0};//位图文件头
bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);//到位图数据的偏移量
bfh.bfSize = bfh.bfOffBits + mbitmap.bmWidthBytes * mbitmap.bmHeight;//文件总的大小
bfh.bfType = (WORD)0x4d42;
byte * p = new byte[mbitmap.bmWidthBytes * mbitmap.bmHeight];//申请内存保存位图数据
GetDIBits(bmemDC.m_hDC, (HBITMAP) bmprect.m_hObject, 0, rect.Height(), p,
(LPBITMAPINFO) &bih, DIB_RGB_COLORS);//获取位图数据
////////////////////////////////////////////////////////////////////////////////////////
FILE *fp = fopen("bitfile.bmp", "w+b");
fwrite(&bfh, 1, sizeof(BITMAPFILEHEADER), fp);//写入位图文件头
fwrite(&bih, 1, sizeof(BITMAPINFOHEADER), fp);//写入位图信息头
fwrite(p, 1, mbitmap.bmWidthBytes * mbitmap.bmHeight, fp);//写入位图数据
fclose(fp);
//ClientToScreen(rect);
m_leftdown =0;
Invalidate(FALSE);//更新界面
CClientDC dc(this);
/* HBITMAP bitmap =CreateCompatibleBitmap(dc.m_hDC,rect.Width(),rect.Height());*/
//复制矩形内容
CDC bmemDC;
bmemDC.CreateCompatibleDC(GetDC());
CBitmap bmprect;
bmprect.CreateCompatibleBitmap(GetDC(),rect.Width(),rect.Height());
bmemDC.SelectObject(&bmprect);
/////////////////////////////////////////////////////////////////////////////////////////
BITMAP mbitmap;
//将位图信息填充到一个缓冲区内
bmprect.GetBitmap(&mbitmap);
bmemDC.BitBlt(0,0,mbitmap.bmWidth,mbitmap.bmHeight,GetDC(),m_StartPoint.x,m_StartPoint.y,SRCCOPY);
BITMAPINFOHEADER bih = {0};//位图信息头
bih.biBitCount = mbitmap.bmBitsPixel;//每个像素字节大小
bih.biCompression = BI_RGB;
bih.biHeight = mbitmap.bmHeight;//高度
bih.biPlanes = 1;
bih.biSize = sizeof(BITMAPINFOHEADER);
bih.biSizeImage = mbitmap.bmWidthBytes * mbitmap.bmHeight;//图像数据大小
bih.biWidth = mbitmap.bmWidth;//宽度
BITMAPFILEHEADER bfh = {0};//位图文件头
bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);//到位图数据的偏移量
bfh.bfSize = bfh.bfOffBits + mbitmap.bmWidthBytes * mbitmap.bmHeight;//文件总的大小
bfh.bfType = (WORD)0x4d42;
byte * p = new byte[mbitmap.bmWidthBytes * mbitmap.bmHeight];//申请内存保存位图数据
GetDIBits(bmemDC.m_hDC, (HBITMAP) bmprect.m_hObject, 0, rect.Height(), p,
(LPBITMAPINFO) &bih, DIB_RGB_COLORS);//获取位图数据
////////////////////////////////////////////////////////////////////////////////////////
FILE *fp = fopen("bitfile.bmp", "w+b");
fwrite(&bfh, 1, sizeof(BITMAPFILEHEADER), fp);//写入位图文件头
fwrite(&bih, 1, sizeof(BITMAPINFOHEADER), fp);//写入位图信息头
fwrite(p, 1, mbitmap.bmWidthBytes * mbitmap.bmHeight, fp);//写入位图数据
fclose(fp);
杭州一知智能科技有限公司
2022-03-17 广告
2022-03-17 广告
电话机器人主要就是用来模拟人工通话的一组程序,一般由,CRM系统,语义识别,转换文字,话术体系,这是软的部分,再加上底层软交换和通信模块一起,合并起来就是一套完整的电话机器人系统。电话机器人可以代替真人进行电话工作的,像是电话营销、售后回访...
点击进入详情页
本回答由杭州一知智能科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询