Condividi tramite


Passaggio 4: Disegnare la bitmap nell'area client

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

[Questa API non è supportata e può essere modificata o non disponibile in futuro.]

Questo argomento è il passaggio 4 dell'acquisizione di una cornice poster.

Il passaggio finale consiste nel disegnare la bitmap nell'area client della finestra dell'applicazione usando la funzione SetDIBitsToDevice . Questo esempio disegna semplicemente la bitmap nell'angolo superiore sinistro dell'area client, senza considerare le dimensioni della finestra:

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;

Le variabili pBuffer e pbmi vengono dichiarate nel passaggio 1: Creare Windows Framework e i relativi valori vengono ottenuti nel passaggio 3: Implementare la funzione Frame-Grabbing.

Afferrare una cornice poster