У меня есть следующий код C ++ (собственное настольное приложение), в котором используется Microsoft Visual Styles API, чтобы нарисовать кнопку закрытия.
RECT r = DetermineButtonRect();
HANDLE h = OpenThemeData(Handle, L"WINDOW");
DrawThemeBackground(h, hdc, WP_CLOSEBUTTON, CBS_NORMAL, &rect, NULL);
CloseThemeData(h);
Это нормально работает в более ранних версиях Windows, но в Windows 8 настаивает на рисовании в стиле Windows 7. Это не ужасно, но все же неприятно, что не все части приложения используют один и тот же визуальный стиль. Вот скриншот того, как это выглядит:
Сверху вниз:
- Стандартная кнопка закрытия Windows 8, использующая минималистичный внешний вид Windows 8 без стекла.
- Стандартная кнопка закрытия Windows 8 MDI (WP_MDICLOSEBUTTON, выглядит немного неуместно из-за более выраженного градиента, но это решение Microsoft.
- Кнопка закрытия, которую я рисую сам, в полном стиле Aero Glass (внешний вид идентична Windows 7) и в результате выглядит неуместно.
Есть ли способ заставить API визуальных стилей рисовать кнопки в стиле Windows 8 (без стекла)? Или мне следует использовать другой API?