如何为一个控件恢复Windows主题

时间:2014-01-25 23:51:01

标签: winapi

我使用以下代码禁用单个控件上的主题:

SetWindowTheme(yourControl.Handle, "", "");

或只是

SetWindowTheme(yourControl.Handle, "explorer", "");

但过了一段时间,我需要恢复该控件上的原始Windows Vista / Seven主题。怎么办?我查找了一个“默认”名称而没有找到它,所有示例都引用了“”或“资源管理器”,这会禁用主题。

1 个答案:

答案 0 :(得分:1)

来自SetWindowTheme documentation

  

当pszSubAppName和pszSubIdList为NULL时,主题管理器将删除先前应用的关联。通过指定与任何节条目不匹配的空字符串(L“”),可以防止将视觉样式应用于指定的窗口。

请注意,NULL""不是一回事。

您可以通过再次使用SetWindowTheme值再次调用NULL来恢复应用的旧主题:

SetWindowTheme(yourControl.Handle, NULL, NULL);