HDC hdcScreen=::GetDC(NULL); //获取全屏幕窗口的设备描述表
m_hdcCompatible=CreateCompatibleDC(hdcScreen); //产生全屏幕窗口设备描述表的兼容设备描述表
GetDeviceCaps(hdcScreen,HORZRES),GetDeviceCaps(hdcScreen,VERTRES)); //产生全屏幕窗口设备描述表的兼容位图
m_hbmScreen=CreateCompatibleBitmap(hdcScreen,
GetDeviceCaps(hdcScreen,HORZRES),GetDeviceCaps(hdcScreen,VERTRES));
SelectObject(m_hdcCompatible,m_hbmScreen); //将兼容位图选入兼容设备描述表
BitBlt(m_hdcCompatible,0,0,GetDeviceCaps(hdcScreen,HORZRES),
GetDeviceCaps(hdcScreen,VERTRES),hdcScreen,0,0,SRCCOPY); //将全屏幕窗口位图的象素数据拷贝到兼容设备描述表
}
(2)根据获取的屏幕信息产生位图并保存
BOOL SaveBitmapToFile(HBITMAP hBitmap, CString FileName)
{
HDC hDC;
Int iBits; //当前分辨率下每象素所占字节数
WORD wBitCount; //位图中每象素所占字节数
DWORD dwPaletteSize=0,dwBmBitsSize=0,dwDIBSize=0,dwWritten=0; //定义调色板大小,位图中像素字节大小 ,位图文件大小 ,写入文件字节数
BITMAP Bitmap; //位图属性结构 本文来自优.文~论^文·网原文请找腾讯3249'114
BITMAPFILEHEADER bmfHdr; //位图文件头结构
BITMAPINFOHEADER bi; //位图信息头结构
LPBITMAPINFOHEADER lpbi; //指向位图信息头结构
HANDLE fh,hDib,hPal,hOldPal=NULL; //定义文件,分配内存句柄,调色板句柄
hDC = CreateDC("DISPLAY",NULL,NULL,NULL); //计算位图文件每个像素所占字节数
iBits = GetDeviceCaps(hDC,BITSPIXEL) * GetDeviceCaps(hDC,PLANES);
DeleteDC(hDC);
if (iBits <= 1) wBitCount = 1;
else if (iBits <= 4) wBitCount = 4;
else if (iBits <= 8) wBitCount = 8;
else wBitCount = 24;
GetObject(hBitmap,sizeof(Bitmap),(LPSTR)&Bitmap);
论文网http://www.youerw.com/
//初始化位图信息图结构
bi.biSize = sizeof(BITMAPINFOHEADER);
bi.biWidth = Bitmap.bmWidth;
bi.biHeight = Bitmap.bmHeight;
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... 下一页 >>
C++的多媒体屏幕广播教学系统设计 第19页下载如图片无法显示或论文不完整,请联系qq752018766