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.
Zugehörige Themen