代码 大概就是这样 有几个关键函数仔细一下,要是要完整代码呢留言
CDC memDC;
CBitmap memBitmap,pOldBitmap;
CWindowDC dc(GetDesktopWindow());
memDCCreateCompatibleDC(&dc);
int nWidth,nHeight;
/ nWidth=GetSystemMetrics(SM_CXSCREEN);
nHeight=GetSystemMetrics(SM_CYSCREEN);/
CRect rect;
GetDesktopWindow()->GetWindowRect(rect);
ClientToScreen(&rect);
nWidth=rectWidth();
nHeight=rectHeight();
memBitmapCreateCompatibleBitmap(&dc,nWidth,nHeight);
pOldBitmap=memDCSelectObject(&memBitmap);
// memDCStretchBlt(0,0,rectWidth(),rectHeight(),&dc,0,0,rectWidth(),rectHeight(),SRCCOPY);
memDCBitBlt(0,0,nWidth,nHeight,&dc,0,0,SRCCOPY);
BITMAPFILEHEADER BMFhead;
BITMAPINFOHEADER BMIhead;
BMFheadbfReserved1=0;
BMFheadbfReserved2=0;
BMFheadbfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
BMFheadbfSize=BMFheadbfOffBits+nWidthnHeight4;
BMFheadbfType=0x4d42;
BMIheadbiBitCount=32;
BMIheadbiClrImportant=0;
BMIheadbiClrUsed=0;
BMIheadbiSizeImage=0;
BMIheadbiXPelsPerMeter=0;
BMIheadbiYPelsPerMeter=0;
BMIheadbiCompression=BI_RGB;
BMIheadbiHeight=nHeight;
BMIheadbiPlanes=1;
BMIheadbiSize=sizeof(BITMAPINFOHEADER);
BMIheadbiWidth=nWidth;
DWORD dwSize=nWidthnHeight4;
BYTE pData=new BYTE[dwSize];
GetDIBits(memDCm_hDC,(HBITMAP)memBitmapm_hObject,0,nHeight,pData,(LPBITMAPINFO)&BMIhead,DIB_RGB_COLORS);
CFile file;
fileOpen("testbmp",CFile::modeCreate | CFile::modeWrite);
fileWrite(&BMFhead,sizeof(BITMAPFILEHEADER));
fileWrite(&BMIhead,sizeof(BITMAPINFOHEADER));
fileWrite(pData,dwSize);
fileClose();
memDCSelectObject(pOldBitmap);
MessageBox("绘图完毕");
GetParent()->ShowWindow(SW_SHOW);
台式机上直接按alt + PritnScreen就好了,
如果是笔记本电脑,有可能要按fn键的,
你这样 *** 作了后,打开WORD 或者画图程序,然后粘贴就好了,
这样就可以保存成文件了!
以上就是关于如何用MFC编写一个程序,获得整个屏幕的截图并保存为bmp格式全部的内容,包括:如何用MFC编写一个程序,获得整个屏幕的截图并保存为bmp格式、利用C语言图形函数编写的程序运行成功后,如何将这些图形界面截图、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)