Windows 8中的视觉样式

我有以下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,由于其更明显的渐变,看起来有点不合适,但这是微软的决定.
>我自己绘制的关闭按钮,使用完整的Aero Glass风格(与Windows 7完全相同),因此看起来非常不合适.

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

解决方法

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

相关文章

文章浏览阅读2.2k次,点赞6次,收藏20次。在我们平时办公工作...
文章浏览阅读1k次。解决 Windows make command not found 和...
文章浏览阅读3.2k次,点赞2次,收藏6次。2、鼠标依次点击“计...
文章浏览阅读1.3w次。蓝光版属于高清版的一种。BD英文全名是...
文章浏览阅读974次,点赞7次,收藏8次。提供了更强大的功能,...
文章浏览阅读1.4w次,点赞5次,收藏22次。如果使用iterator的...