![](/img/trans.png)
[英]Possible Qt5 bug: calling setFixedSize() disables the main window's close button (under 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.