Cortando uma imagem
[O recurso associado a esta página, MCIWnd Window Class, é um recurso herdado. Foi substituído pelo MediaPlayer. O MediaPlayer foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o MediaPlayer em vez da Classe de Janela MCIWnd, 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.]
O exemplo a seguir cria uma janela MCIWnd e carrega um arquivo AVI. A janela inclui um comando de corte no menu, que corta um quarto da altura ou largura de cada um dos quatro lados do quadro. O exemplo recupera as dimensões atuais (iniciais) do retângulo de origem usando a macro MCIWndGetSource . O retângulo de origem modificado é metade da altura e largura originais e é centralizado no quadro original. A chamada para a macro MCIWndPutSource redefine as coordenadas do retângulo de origem.
// extern RECT rSource, rDest;
case WM_COMMAND:
switch (wParam)
{
case IDM_CREATEMCIWND:
g_hwndMCIWnd = MCIWndCreate( hwnd,
g_hinst,
WS_CHILD | WS_VISIBLE,
"sample.avi" );
break;
case IDM_CROPIMAGE: // crops image
MCIWndGetSource(g_hwndMCIWnd, &rSource); // source rectangle
rDest.left = rSource.left + // new boundaries
((rSource.right - rSource.left) / 4);
rDest.right = rSource.right -
((rSource.right - rSource.left) / 4);
rDest.top = rSource.top +
((rSource.bottom - rSource.top) / 4);
rDest.bottom = rSource.bottom -
((rSource.bottom - rSource.top) / 4);
MCIWndPutSource(g_hwndMCIWnd, &rDest); // new source rectangle
}
break;
// Handle other messages here.