Rognage d’une image
L’exemple suivant crée une fenêtre MCIWnd et charge un fichier AVI. La fenêtre comprend une commande Rogner dans le menu, qui rogne un quart de la hauteur ou de la largeur de chacun des quatre côtés du cadre. L’exemple récupère les dimensions actuelles (initiales) du rectangle source à l’aide de la macro MCIWndGetSource . Le rectangle source modifié est la moitié de la hauteur et de la largeur d’origine et est centré dans le frame d’origine. L’appel de la macro MCIWndPutSource redéfinit les coordonnées du rectangle source.
// 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.