Настройка процесса записи
[Функция, связанная с этой страницей, класс окна MCIWnd, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо класса MCIWnd Window. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Вы можете настроить процесс записи, взяв под полный контроль большинство всех элементов — от создания окна MCIWnd до сохранения записанных сведений в файле. В следующем примере устройство MCI запрашивает возможности записи и сохранения и включает команды меню для записи в начале или конце содержимого.
В следующем примере функция MCIWndCreate используется для создания нового окна и позволяет указать существующий файл для хранения записанных данных и макрос MCIWndNew для связывания нового файла с окном. Кроме того, можно использовать макрос MCIWndOpen или MCIWndOpenDialog для указания файла.
В примере используется макрос MCIWndCanRecord , чтобы убедиться, что устройство может записывать данные, и макрос MCIWndCanSave , чтобы убедиться, что устройство сохраняет информацию. В примере задается текущая позиция воспроизведения с помощью макросов MCIWndHome и MCIWndEnd . Пример начинает запись с помощью макроса MCIWndRecord . После записи сведений пример сохраняет их с помощью макроса MCIWndSaveDialog .
case WM_COMMAND:
switch (wParam)
{
case IDM_CREATEMCIWND:
g_hwndMCIWnd = MCIWndCreate( hwnd, g_hinst,
WS_VISIBLE | WS_CHILD |
MCIWNDF_RECORD, // add Record button
NULL );
MCIWndNew(g_hwndMCIWnd, "waveaudio"); // new file
if( MCIWndCanRecord(g_hwndMCIWnd) )
{
MessageBox( hwnd,
"Press the red button on the toolbar to record.",
"MCIWnd Record",
MB_OK );
}
else
{
MessageBox( hwnd,
"This device doesn't record.",
"MCIWnd Record",
MB_OK );
}
break;
case IDM_RECORDATSTART:
if( MCIWndCanRecord(g_hwndMCIWnd) )
{
MCIWndHome(g_hwndMCIWnd);
MCIWndRecord(g_hwndMCIWnd);
}
else
{
MessageBox( hwnd,
"This device doesn't record.",
"MCIWnd Record",
MB_OK);
}
break;
case IDM_RECORDATEND:
if( MCIWndCanRecord(g_hwndMCIWnd) )
{
MCIWndEnd(g_hwndMCIWnd);
MCIWndRecord(g_hwndMCIWnd);
}
else
{
MessageBox( hwnd,
"This device doesn't record.",
"MCIWnd Record",
MB_OK);
}
break;
case IDM_SAVEMCIWND:
if( MCIWndCanSave(g_hwndMCIWnd) )
MCIWndSaveDialog(g_hwndMCIWnd);
}
break;
// Handle other messages here.