Windows 8中的视觉样式

时间:2013-12-04 21:41:48

标签: windows windows-8 themes aero-glass visual-styles

我有以下使用Microsoft的Visual Styles API绘制关闭按钮的C ++代码(原生桌面应用)。

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样式进行绘制。这并不可怕,但是没有让应用程序的所有部分都使用相同的视觉风格仍然令人沮丧。这是一个截图:

close buttons

从上到下:

  • 标准的Windows 8关闭按钮,使用Windows 8的极简非玻璃外观。
  • 标准的Windows 8 MDI关闭按钮(WP_MDICLOSEBUTTON,由于其更明显的渐变,看起来有点不合适,但这是微软的决定。
  • 我自己画的关闭按钮,使用完整的Aero Glass风格(与Windows 7完全相同),因此看起来不合适。

有没有办法让Visual Styles API绘制Windows 8样式(非Glass)按钮?或者我应该使用不同的API吗?

1 个答案:

答案 0 :(得分:3)

使用WP_SMALLCLOSEBUTTON似乎适用于具有正确主题的Windows 7和Windows 8。

相关问题