是不是有什么直接的函数还是需要用到 COM?

解决方案 »

  1.   

    SetWindowTheme 只能对某个窗口应用 Theme,如果我要更换整个桌面的 Theme 呢?
    LPCWSTR pszSubAppName, LPCWSTR pszSubIdList 又分别表示什么?
      

  2.   

    恩,也没发现类似的api,msdn中倒是说了一种改注册表,但需要重启,也用一些ui设置软件,的确有未公开的api,你可以直接shellexecute,那个theme文件,会出来最终主题选择,用户单击确定就行了
      

  3.   

    未公开的 API。汗。
    顶一下,希望有知道的朋友帮忙。
      

  4.   

    使用COM:ThemeManager 的IThemeManagerDisp或者用LoadLibrary加载desk.cpl的DeskSetCurrentScheme函数。
    DeskSetCurrentSchemeA(LPCSTR LpSchemeName)