Compartir a través de


Paso 4: Dibujar el mapa de bits en el área de cliente

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

[Esta API no se admite y puede modificarse o no estar disponible en el futuro].

Este tema es el paso 4 de Agarrar un marco de póster.

El último paso consiste en dibujar el mapa de bits en el área cliente de la ventana de la aplicación mediante la función SetDIBitsToDevice . En este ejemplo simplemente se pinta el mapa de bits en la esquina superior izquierda del área de cliente, sin tener en cuenta el tamaño de la ventana:

case WM_PAINT:
    {
        PAINTSTRUCT ps;
        HDC hdc = BeginPaint(hwnd, &ps);
        if (pbmi)
        {
            int result = SetDIBitsToDevice(hdc, 0, 0, 
                pbmi->biWidth,
                pbmi->biHeight,
                0, 0, 0,
                pbmi->biHeight,
                pBuffer,
                reinterpret_cast<BITMAPINFO*>(pbmi),
                DIB_RGB_COLORS);
        }
        EndPaint(hwnd, &ps);
    }
    break;

Las variables pBuffer y pbmi se declaran en el Paso 1: Crear Windows Framework y sus valores se obtienen en paso 3: Implementar la función Frame-Grabbing.

Agarrar un marco de póster