captura de pantalla del área vc
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.