Freigeben über


Schritt 4: Zeichnen der Bitmap im Clientbereich

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

[Diese API wird nicht unterstützt und kann in Zukunft geändert oder nicht mehr verfügbar sein.]

Dieses Thema ist Schritt 4 des Greifens eines Posterrahmens.

Der letzte Schritt besteht darin, die Bitmap mithilfe der SetDIBitsToDevice-Funktion auf den Clientbereich des Anwendungsfensters zu zeichnen. In diesem Beispiel wird die Bitmap einfach in der oberen linken Ecke des Clientbereichs ohne Rücksicht auf die Fenstergröße gezeichnet:

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;

Die Variablen pBuffer und pbmi werden in Schritt 1: Erstellen des Windows Framework deklariert, und ihre Werte werden in Schritt 3: Implementieren der Frame-Grabbing-Funktion abgerufen.

Greifen eines Posterrahmens