Etapa 4: Desenhar o Bitmap na Área do Cliente
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
[Não há suporte para essa API e pode ser alterada ou indisponível no futuro.]
Este tópico é a Etapa 4 de Como pegar um quadro de pôster.
A etapa final é desenhar o bitmap na área do cliente da janela do aplicativo, usando a função SetDIBitsToDevice . Este exemplo simplesmente pinta o bitmap no canto superior esquerdo da área do cliente, sem considerar o tamanho da janela:
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;
As variáveis pBuffer e pbmi são declaradas na Etapa 1: Criar a Estrutura do Windows e seus valores são obtidos na Etapa 3: Implementar a função Frame-Grabbing.
Tópicos relacionados