Rognage d’une image
[La fonctionnalité associée à cette page, classe de fenêtre MCIWnd, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer. MediaPlayer a été optimisé pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer au lieu de la classe Windows MCIWnd, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
L’exemple suivant crée une fenêtre MCIWnd et charge un fichier AVI. La fenêtre inclut 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 cadre d’origine. L’appel à 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.