裁剪图像
[与此页面关联的功能 MCIWnd Window 类是一项旧功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaPlayer 而不是 MCIWnd 窗口类。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
以下示例创建 MCIWnd 窗口并加载 AVI 文件。 窗口在菜单中包括一个裁剪命令,该命令从框架的四个边裁剪四分之一的高度或宽度。 该示例使用 MCIWndGetSource 宏检索源矩形的当前 (初始) 尺寸。 修改后的源矩形是原始高度和宽度的一半,在原始框架中居中。 调用 MCIWndPutSource 宏将重新定义源矩形的坐标。
// 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.