Мы только что переключили наше приложение C ++ MFC с VS2005 на VS2008. К сожалению, при этом у нашего пользовательского интерфейса возникают проблемы с внешним видом, такие как групповые блоки, которые отображаются синим цветом, а не черным, диалоговые окна свойств имеют белый фон и т. Д. Я предполагаю, что в VS2008 MFC был изменен в соответствии с темой ОС (в моем случае XP по умолчанию тема). К сожалению, изменение всех элементов управления и пользовательских панелей инструментов, чтобы приложение снова выглядело прилично, потребует много работы.
Итак, кто-нибудь знает, есть ли в коде способ вернуть приложение в режим VS2005? Я нашел следующий код
typedef void (WINAPI *tSetThemeAppProperties)( DWORD );
tSetThemeAppProperties pSetThemeAppProperties=0;
HINSTANCE handle = ::LoadLibrary("UxTheme.dll");
if (handle)
pSetThemeAppProperties = (tSetThemeAppProperties) ::GetProcAddress(handle,"SetThemeAppProperties");
if ( pSetThemeAppProperties)
{
// call function
pSetThemeAppProperties(0/*dwFlags*/);
}
::FreeLibrary(handle);
Что не позволяет выбрать тему XP, но отключает ВСЕ темы и делает приложение более устаревшим, чем в VS2005.
спасибо