Red de conocimiento informático - Material del sitio web - En programación mfc, ¿cómo guardar imágenes en formato BMP en el área de visualización?

En programación mfc, ¿cómo guardar imágenes en formato BMP en el área de visualización?

Para darle una referencia de funció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

}