我想解决this bug。所以我需要知道Window7下的用户显示配置是否正在使用" Aero"或" Classic"风格。
有办法吗?
我尝试了QApplication::style()->objectName()
,但无论选择何种风格,这都会让我"windowsvista"
....
答案 0 :(得分:1)
可以使用WinAPI完成。对于Windows 7(可能还有Vista,8和10):
// true == Aero theme, false == Classic theme
bool isAeroEnabled()
{
HMODULE library = LoadLibrary(L"dwmapi.dll");
bool result = false;
if (library) {
BOOL enabled = false;
HRESULT (WINAPI *pFn)(BOOL *enabled) = (HRESULT (WINAPI *)(BOOL *enabled))(GetProcAddress(library, "DwmIsCompositionEnabled"));
result = SUCCEEDED(pFn(&enabled)) && enabled;
FreeLibrary(library);
}
return result;
}
对于旧版Windows,请按照Get Windows theme?问题进行操作。