Share via


Anhalten und Fortsetzen der Wiedergabe

Sie können die Wiedergabe eines Geräts oder einer Datei unterbrechen, das einem MCIWnd-Fenster zugeordnet ist, indem Sie das MCIWndPause-Makro verwenden. Anschließend können Sie die Wiedergabe mithilfe des MCIWndResume-Makros neu starten. Wenn das Gerät das Fortsetzen nicht unterstützt oder ein Fehler auftritt, können Sie das MCIWndPlay-Makro verwenden, um die Wiedergabe neu zu starten.

Im folgenden Beispiel wird ein MCIWnd-Fenster erstellt und eine AVI-Datei wiedergegeben. Die Menübefehle "Anhalten" und "Fortsetzen" stehen dem Benutzer zur Verfügung, um die Wiedergabe zu unterbrechen und neu zu starten.

MCIWnd-Fensterstile werden vorübergehend mithilfe des MCIWndChangeStyles-Makros geändert, um zu verhindern, dass ein MCI-Fehlerdialogfeld angezeigt wird, wenn MCIWndResume fehlschlägt.

case WM_COMMAND: 
    switch (wParam) 
    { 
        case IDM_CREATEMCIWND:             // creates and plays clip 
            g_hwndMCIWnd = MCIWndCreate(hwnd,  
                g_hinst,                      
                WS_CHILD | WS_VISIBLE |    // standard styles
                MCIWNDF_NOPLAYBAR |        // hides toolbar 
                MCIWNDF_NOTIFYMODE,        // notifies of mode changes
                "sample.avi"); 
 
            MCIWndPlay(g_hwndMCIWnd); 
            break;    
        case IDM_PAUSEMCIWND:              // pauses playback 
            MCIWndPause(g_hwndMCIWnd); 
            MessageBox(hwnd, "MCIWnd", "Pausing Playback", MB_OK); 
            break; 
        case IDM_RESUMEMCIWND:          // resumes playback 
            MCIWndChangeStyles(      // hides error dialog messages
                g_hwndMCIWnd,        // MCIWnd window
                MCIWNDF_NOERRORDLG,  // mask of style to change
                MCIWNDF_NOERRORDLG); // suppresses MCI error dialogs 
 
            lResult = MCIWndResume(g_hwndMCIWnd); 
 
            if(lResult){                   // device doesn't resume 
                MessageBox(hwnd, "MCIWnd", 
                    "Resume with Stop and Play", MB_OK); 
                MCIWndStop(g_hwndMCIWnd); 
                MCIWndPlay(g_hwndMCIWnd); 
 
                MCIWndChangeStyles(        // resumes original styles
                    g_hwndMCIWnd, 
                    MCIWNDF_NOERRORDLG, 
                    NULL); 
        } 
        break; 
    } 
    break; 
 
// Handle other messages here.