Freigeben über


Zuschneiden eines Bilds

[Das dieser Seite zugeordnete Feature MCIWnd Window Class ist ein Legacyfeature. Es wurde von MediaPlayer ersetzt. MediaPlayer wurde für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer anstelle der MCIWnd-Fensterklasse verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Im folgenden Beispiel wird ein MCIWnd-Fenster erstellt und eine AVI-Datei geladen. Das Fenster enthält einen Befehl zum Zuschneiden im Menü, der ein Viertel der Höhe oder Breite von jeder der vier Seiten des Rahmens abschneidet. Im Beispiel werden die aktuellen (anfänglichen) Dimensionen des Quellrechtecks mithilfe des MCIWndGetSource-Makros abgerufen. Das geänderte Quellrechteck hat die hälfte der ursprünglichen Höhe und Breite und ist im ursprünglichen Rahmen zentriert. Der Aufruf des MCIWndPutSource-Makros definiert die Koordinaten des Quellrechtecks neu.

// 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.