En programación mfc, ¿cómo guardar imágenes en formato BMP en el área de visualización?
Simplemente cambie srcDC al DC de la ventana que desea guardar:
hbit map copy screentobitmap(LPRECT LPRECT)
{
int m _ x screen = GetSystemMetrics(SM _ CX screen);
//Obtiene los píxeles de la pantalla en la dirección Y ()
int m _ y screen = GetSystemMetrics(SM_cy screen);
HDC hScrDC, hMemDC
HBITMAP hBitmap, hOldBitmap
int nX1, nX2, nY1, nY2
int nWidth, nHeight
if (IsRectEmpty(lpRect))
{
Devuelve FALSO
}
//Crea una tabla de contexto de dispositivo para la pantalla.
hScrDC = CreateDC("DISPLAY ", NULL, NULL, NULL);
//Crea una tabla de contexto de dispositivo de memoria compatible para la tabla de contexto de dispositivo de pantalla.
hme MDC = CreateCompatibleDC(hScrDC);
//Obtener las coordenadas del área seleccionada
NX 1 = lpRect-& gt; p >
ny 1 = lpRect->arriba;
nX2 = lpRect->derecha;
nY2 = lpRect->abajo;
//Asegúrese de que el área seleccionada esté visible.
si(NX 1 <0)
NX 1 = 0;
si(ny 1 <0)
ny 1 = 0;
if(nX2>m_pantalla)
nX2 = m_xPantalla
if(nY2>m_pantalla)
nY2 = m _ yScreen
nWidth = nX2-NX 1;
n height = nY2-ny 1;
//Crea un mapa de bits compatible con el contexto del dispositivo de pantalla .
hbit map = CreateCompatibleBitmap(HSC RDC, nWidth, n height);
//Seleccione el nuevo mapa de bits en la tabla de contexto del dispositivo de memoria.
mantener bitmap =(hbit map)select object(hme MDC, hbit map);
// Copiar la tabla de contexto del dispositivo de pantalla a la tabla de contexto del dispositivo de memoria.
BitBlt(hMemDC, 0, 0, nWidth, nHeight, hScrDC, nX1, nY1, src copy);
//Obtiene el identificador del mapa de bits de la pantalla.
hbit map =(hbit map)seleccionar objeto(hme MDC,mantener mapa de bits);
//Borrar
EliminarDC(hScrDC);
EliminarDC(hme MDC);
Devolver hBitmap
}