XP-стиль в WinAPI-приложении. VS 2005.
VC ++
VS 2005
Разбираюсь с программированием с помощью WinAPI. Сделал простейшее приложение, которое отображает диалог из ресурсов. Т.е. не создаю свой класс окна, а просто в WinMain() вызываю диалог:
DialogBox(hInstance, MAKEINTRESOURCE(ID_ДИАЛОГА), HWND_DESKTOP, DLGPROC(DlgProc));
Запускаю - все работает.
Теперь требуется сделать так, чтобы диалог был в XP-стиле. Для этого в манифест добавляется строчка:
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' />
</dependentAssembly>
после этого - все. DialogBox() возвращает -1 и не отображает диалог. При этом GetLastError() возвращает 87-ю ошибку ("The parameter is incorrect.")
Даже обычный MessageBox() не отрабатывает - при запуске раздается системный звук, как если бы выскочило сообщение, но ничего не появляется.
Подскажите, пожалуйста, что не так?
P.S. Диалог простейший - только две кнопки "OK" и "Cancel". Больше ничего.
VS 2005
Разбираюсь с программированием с помощью WinAPI. Сделал простейшее приложение, которое отображает диалог из ресурсов. Т.е. не создаю свой класс окна, а просто в WinMain() вызываю диалог:
DialogBox(hInstance, MAKEINTRESOURCE(ID_ДИАЛОГА), HWND_DESKTOP, DLGPROC(DlgProc));
Запускаю - все работает.
Теперь требуется сделать так, чтобы диалог был в XP-стиле. Для этого в манифест добавляется строчка:
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls'
</dependentAssembly>
после этого - все. DialogBox() возвращает -1 и не отображает диалог. При этом GetLastError() возвращает 87-ю ошибку ("The parameter is incorrect.")
Даже обычный MessageBox() не отрабатывает - при запуске раздается системный звук, как если бы выскочило сообщение, но ничего не появляется.
Подскажите, пожалуйста, что не так?
P.S. Диалог простейший - только две кнопки "OK" и "Cancel". Больше ничего.
