繁体   English   中英

从Qt,在Win7下,如何知道使用哪种窗口样式进行显示?

[英]From Qt, under Win7, how to know which window style is used for display?

我想解决这个错误 因此,我需要知道Window7下的用户显示配置是使用“ Aero”还是“ Classic”样式。

有没有办法做到这一点?

我尝试了QApplication::style()->objectName()但是无论选择"windowsvista"样式,此方法总是返回"windowsvista"

可以使用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版本,请遵循“ 获取Windows主题? 题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM