裁剪图像

[与此页面关联的功能 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.