Активировать тему для окна, если отключено для всей системы

Я пишу Win32-приложение для Windows (без MFC или Qt) в системе Windows 7, ориентированное на 7, 8 и 10.

Мое приложение определяет, включен ли Aero, и корректно обрабатывает как аэро, так и не аэро, но когда нет визуального стиля в ОС (т. е. флажок «Применить визуальные стили для окон и кнопок» отключен в диалоговом окне «Параметры производительности» панели управления).

Я могу определить, запущено ли мое приложение без тем с IsAppThemed но я не могу понять, как напрямую создать окно с включенным стилем или принудительно включить стиль … это то, что я пытался, и он не работает:

  case WM_CREATE: {
if (IsAppThemed() == FALSE) {
// No visual style is applied
SetThemeAppProperties(STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS);
SendMessage(hWnd, WM_THEMECHANGED, 0, 0);
RedrawWindow(hWnd, 0, 0, RDW_UPDATENOW);
}
} break;

Даже не

SetWindowTheme(hWnd, 0, 0);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);

работал.

Как я могу принудительно включить стили, если обнаружу, что они отключены?

0

Решение

Если пользователь решает отключить темы, вы не можете отменить это решение. Вам просто придется с этим справиться. Очевидный путь вперед — улучшить поведение вашего приложения в этом сценарии.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]