Red de conocimiento informático - Problemas con los teléfonos móviles - captura de pantalla del área vc

captura de pantalla del área vc

Le proporciona funciones para guardar una región lpRect en un HBITMAP. Con HBITMAP, es fácil de manejar.

En cuanto a obtener el área, recomiendo usar la función SetCapture para interceptar el evento del mouse cuando se presiona el mouse y liberar la captura cuando se cancela el mouse, para que pueda obtener el área.

HBITMAP CDrawWnd::CopyScreenToBitmap(LPRECT lpRect)

//lpRect representa el área seleccionada

{

HDC hScrDC, hMemDC ;

// Descriptores de pantalla y dispositivo de memoria

// Descriptores de pantalla y dispositivo de memoria

Igual que en HBITMAP. p>

HBITMAP hBitmap, hOldBitmap;

// identificador de mapa de bits

int nX, nY, nX2, nY2; Coordenadas del área seleccionada

int nWidth, nHeight;

// Asegúrate de que el área seleccionada no sea un rectángulo vacío

// If (Is Isolator, Aislador, Aislador, Aislador, Aislador, Aislador, Aislador), el área seleccionada es un rectángulo. p>

if (IsRectEmpty(lpRect))

return NULL;

// Crea un contexto de dispositivo para la pantalla

p>

hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL);

// Crea una tabla de descripción de dispositivo de memoria compatible para la pantalla. Tabla

hMemDC = CreateCompatibleDC(hScrDC);

// Obtener las coordenadas del área seleccionada

nX = lpRect->left;

nY = lpRect->arriba;

nX2 = lpRect->derecha;

nY2 = lpRect->abajo;

nWidth = nX2 - nX;

nHeight = nY2 - nY;

// Crea un mapa de bits que sea compatible con el contexto del dispositivo de la pantalla

hBitmap = CreateCompatibleBitmap

(hScrDC, nWidth, nHeight);

// Selecciona el nuevo mapa de bits en la tabla de contexto del dispositivo de memoria

hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);

// Copia la tabla de contexto del dispositivo de pantalla a la tabla de contexto del dispositivo de memoria

BitBlt(hMemDC, 0, 0, nWidth, nHeight,

hScrDC, nX, nY, SRCCOPY );

hBitmap = (HBITMAP )SelectObject(hMemDC, hOldBitmap);

// Obtener el identificador del mapa de bits de la pantalla

// Borrar

DeleteDC(hScrDC);

DeleteDC(hMemDC);

// Devuelve el identificador del mapa de bits

// Devuelve hBitmap.

p> Devuelve hBitmap;

}

// Devuelve el identificador de mapa de bits

// Devuelve hBitmap.