¿Cómo escribir un programa en MFC para tomar una captura de pantalla de toda la pantalla y guardarla en formato bmp?
CDC memDC;
CBitmap memBitmap, *pOldBitmap. ;
p>
CWindowDC dc(GetDesktopWindow());
memDC.CreateCompatibleDC(amp; dc);
int nWidth, nHeight; /p>
/* nWidth=GetSystemMetrics(SM_CXSCREEN);
nHeight= GetSystemMetrics(SM_CYSCREEN);*/
CRect rect;
GetDesktopWindow( )-gt; GetWindowRect(rect) ;
ClientToScreen(amp;rect);
nWidth=rect.SelectObject(amp;memBitmap);
// memDC.StretchBlt(0, 0, rect.Width(), rect.Height(), amp; dc, 0, 0, rect.BitBlt(0, 0, nWidth, nHeight, amp; dc, 0, 0, SRCCOPY)
BITMAPFILEHEADER BMFhead;
BITMAPINFOHEADER BMIhead
BMFhead.bfReserved1=0
BMFhead.bfReserved2=0; >
BMFhead.BMIhead. biSize=sizeof(BITMAPINFOHEADER);
BMIhead.biWidth=nAncho;
DWORD dwSize=nAncho*nAlto* 4;
BYTE *pData=new BYTE[ dwSize]
GetDIBits(memDC.m_hDC, (HBITMAP) memBitmap.m_hObject, 0, nHeight, pData, (LPBITMAPINFO) amp.BMIhead, DIB_RGB_COLORS
Archivo CFile;
file.Open("test.bmp", CFile::modeCreate | CFile::modeWrite);
file.Write(amp; BMFhead, sizeof(BITMAPFILEHEADER));
p>
File.Write(amp; BMFhead, sizeof(BITMAPFILEHEADER));
File.Write(amp; BMFhead, sizeof(BITMAPFILEHEADER)); ));