我正在面向 7、8 和 10 的 Windows 7 系统上编写 Windows(无 MFC 或 Qt)win32 应用程序。
我的应用程序检测 Aero 是否已启用并正确处理 aero 和非 aero,但是当操作系统中没有视觉样式(即“应用窗口和按钮的视觉样式”复选框在性能中关闭时,它会呈现得很糟糕控制面板的选项对话框)。
我可以检测到我的应用程序是否在没有主题的情况下启动,IsAppThemed
但我似乎无法弄清楚如何直接创建启用样式的窗口或强制启用样式..这是我尝试过的,但它不起作用:
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;
甚至不
SetWindowTheme(hWnd, 0, 0);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
工作。
如果我检测到样式被禁用,如何强制启用样式?