首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在系统范围内激活窗口的主题(如果已禁用)

在系统范围内激活窗口的主题(如果已禁用)
EN

Stack Overflow用户
提问于 2015-12-15 15:46:37
回答 1查看 629关注 0票数 0

我在Windows 7系统上编写一个针对7、8和10的Windows (没有MFC或Qt) win32应用程序。

我的应用程序检测到是否启用了Aero,并且正确地处理了航空和非气动,但是当操作系统中没有时,它呈现得非常糟糕(例如,“为窗口和按钮应用视觉样式”复选框在“控制面板的性能选项”对话框中被关闭)。

我可以检测我的应用程序是否是在没有主题的情况下使用IsAppThemed启动的,但我似乎不知道如何直接创建启用样式的窗口或强制启用样式。这是我尝试过的,但不起作用:

代码语言:javascript
复制
  case WM_CREATE: {
    if (IsAppThemed() == FALSE) {
      // No visual style is applied
      SetThemeAppProperties(STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS);
      SendMessage(hWnd, WM_THEMECHANGED, 0, 0);
      RedrawWindow(hWnd, 0, 0, RDW_UPDATENOW);
    }
  } break;

甚至都没有

代码语言:javascript
复制
SetWindowTheme(hWnd, 0, 0);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);

起作用了。

如何强制启用样式,如果我发现他们是禁用的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-15 21:45:19

如果用户决定禁用主题,则不能翻转该决定。你只需要应付它。最明显的方法是在这种情况下改进应用程序的行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34293463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档