Для создания окна MCI проще всего воспользоваться функцией MCIWndCreate . Функция MCIWndCreate HWND MCIWndCreate( HWND hwndParent, // идентификатор родительского окна HINSTANCE hInstance, // идентификатор приложения DWORD dwStyle, // стиль окна LPSTR szFile); // имя устройства или путь к файлу
Параметры функции: hwndParent
Через этот параметр приложение передает функции идентификатор родительского окна, то есть окна, создавшего окно MCI. Если родительского окна нет, в качестве этого параметра можно указать NULL hInstance
Идентификатор приложения, полученных через параметры функции WinMain или LibMain (для DLL-библиотеки)
Стиль создаваемого окна. Можно указывать стили, стандартные для функции CreateWindow, а также дополнительные, список которых приведен ниже. Если стандратные стили не указаны (что допустимо), то если есть родительское окно, используются стили WS_CHILD, WS_BORDER, иWS_VISIBLE. Если же параметр hwndParent указан как NULL, используются стили WS_OVERLAPPEDWINDOW и WS_VISIBLE. Для создания невидимого окна следует использовать один из стандартных стилей, например, WS_CHILD szFile
Указатель на текстовую строку, содержащую имя устройства (например, "cdaudio") или путь к файлу
Возвращаемое значение:
Идентификатор созданного окна при успешном завершении или NULL при ошибке
Привдем список дополнительных стилей, которые можно использовать при создании окна MCI.
Стиль | Описание |
MCIWNDF_NOAUTOSIZEWINDOW | Размер окна не изменяется при изменении размера изображения |
MCIWNDF_NOAUTOSIZEMOVIE | При изменении размеров окна не следует выполнять масштабирование изображения для полного заполнения внутренней области окна |
MCIWNDF_NOPLAYBAR | Если задан этот стиль, не отображается полоса просмотра |
MCIWNDF_NOMENU | Не отображается кнопка для доступа к меню |
MCIWNDF_RECORD | Отображается кнопка записи, в меню добавляется строка "New" |
MCIWNDF_NOERRORDLG | При возникновении ошибки на экран не выводится диалогоая панель с описанием этой ошибки. Приложение может получить описание самой последней возникшей ошибки при помощи функции MCIWndGetError |
MCIWNDF_NOTIFYMODE | При изменении режима родительское окно получит извещающее сообщение MCIWNDM_NOTIFYMODE |
MCIWNDF_NOTIFYPOS | При изменении текущей позиции приложение получит извещающее сообщение MCIWNDM_NOTIFYPOS |
MCIWNDF_NOTIFYMEDIA | При замене носителя данных (например, звукового компакт-диска) приложение получит извещающее сообщение MCIWNDM_NOTIFYMEDIA |
MCIWNDF_NOTIFYSIZE | Родительское окно получит извещающее сообщение MCIWNDM_NOTIFYSIZE при изменении размера окна MCI |
MCIWNDF_NOTIFYERROR | При возникновении ошибки родительское окно получит сообщение MCIWNDM_NOTIFYERROR |
MCIWNDF_NOTIFYALL | Окно MCI будет извещать родительское окно в случае возникновения любых событий |
MCIWNDF_SHOWNAME | В заголовке окна будет отображаться имя устройства или путь к файлу |
MCIWNDF_SHOWPOS | В заголовке окна будет отображаться текущая позиция |
MCIWNDF_SHOWMODE | В заголовке окна будет отображаться текущий режим работы |
MCIWNDF_SHOWALL | Будут использованы все возможности окна MCI (то есть все органы управления, отображение информации в заголовке и т. д.) |
Другой способ создания окна MCI заключается в регистрации класса окна MCIWND_WINDOW_CLASS функцией MCIWndRegisterClass , не имеющей парамеров, и создании на базе этого класса окна функцией CreateWindow . В случае успеха функция MCIWndRegisterClass возвращает значение FALSE.