Ritaglio di un'immagine
[La funzionalità associata a questa pagina, la classe finestra MCIWnd, è una funzionalità legacy. È stata sostituita da MediaPlayer. MediaPlayer è stato ottimizzato per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer anziché la classe di finestra MCIWnd, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Nell'esempio seguente viene creata una finestra MCIWnd e viene caricato un file AVI. La finestra include un comando di ritaglio nel menu, che ritaglia un quarto dell'altezza o della larghezza da ognuno dei quattro lati della cornice. Nell'esempio vengono recuperate le dimensioni correnti (iniziali) del rettangolo di origine usando la macro MCIWndGetSource . Il rettangolo di origine modificato è metà dell'altezza e della larghezza originale e viene centrato nella cornice originale. La chiamata alla macro MCIWndPutSource ridefine le coordinate del rettangolo di origine.
// 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.