Share via


Erstellen eines Dialogfelds zum Auswählen eines bestimmten Formattyps

Möglicherweise möchten Sie, dass eine Anwendung es dem Benutzer ermöglicht, ein Format aus einer eingeschränkten Liste von Formaten in einem Dialogfeld auszuwählen. Einschränkungen können die Anzahl von Kanälen, die Samplingrate, das Tag für das Waveform-Audioformat oder die Anzahl der Bits pro Beispiel einschränken. In all diesen Fällen können Sie die Liste generieren, indem Sie die Funktion acmFormatChoose verwenden und dabei die Elemente fdwEnum und pwfxEnum der ACMFORMATCHOOSE-Struktur festlegen. Dieser Prozess wird anhand des folgenden Beispiels veranschaulicht.

MMRESULT            mmr; 
ACMFORMATCHOOSE     afc; 
WAVEFORMATEX        wfxSelection; 
WAVEFORMATEX        wfxEnum; 
 
// Initialize the ACMFORMATCHOOSE members. 
memset(&afc, 0, sizeof(afc)); 
 
afc.cbStruct    = sizeof(afc); 
afc.fdwStyle    = 0L;               // no special style flags 
afc.hwndOwner   = hwnd;             // hwnd of parent window 
afc.pwfx        = &wfxSelection;    // wfx to receive selection 
afc.cbwfx       = sizeof(wfxSelection); 
afc.pszTitle    = TEXT("16 Bit PCM Selection"); 
 
//  Request that all 16-bit PCM formats be displayed for the user 
//  to select from. 
memset(&wfxEnum, 0, sizeof(wfxEnum)); 
wfxEnum.wFormatTag = WAVE_FORMAT_PCM; 
wfxEnum.wBitsPerSample = 16; 
afc.fdwEnum = ACM_FORMATENUMF_WFORMATTAG | 
    ACM_FORMATENUMF_WBITSPERSAMPLE; 
afc.pwfxEnum = &wfxEnum; 
mmr = acmFormatChoose(&afc); 
if ((MMSYSERR_NOERROR != mmr) && (ACMERR_CANCELED != mmr)) 
{ 
    // There was a fatal error in bringing up the list 
    // dialog box (probably invalid input parameters). 
}