fix can not max widnow
This commit is contained in:
parent
3824169324
commit
5367abc5e8
@ -191,11 +191,12 @@ bool FramelessDelegateWin::nativeEvent(const QByteArray & eventType, void* messa
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
case WM_NCLBUTTONDBLCLK: {
|
case WM_NCLBUTTONDBLCLK: {
|
||||||
|
*result = 0;
|
||||||
if (mainWidget_->maximumSize() == QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX) &&
|
if (mainWidget_->maximumSize() == QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX) &&
|
||||||
mainWidget_->windowFlags().testFlag(Qt::WindowMaximizeButtonHint))
|
mainWidget_->windowFlags().testFlag(Qt::WindowMaximizeButtonHint))
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
case WM_NCRBUTTONUP:
|
case WM_NCRBUTTONUP:
|
||||||
{
|
{
|
||||||
@ -368,12 +369,13 @@ void FramelessDelegateWin::SetNativeWindowLong() {
|
|||||||
style &= ~WS_MINIMIZEBOX;
|
style &= ~WS_MINIMIZEBOX;
|
||||||
style &= ~WS_MAXIMIZEBOX;
|
style &= ~WS_MAXIMIZEBOX;
|
||||||
|
|
||||||
if (!mainWidget_->windowFlags().testFlag(Qt::WindowMinimizeButtonHint) ||
|
// 根据 Qt 窗口标志与大小约束,启用系统最小化/最大化按钮能力
|
||||||
mainWidget_->maximumSize() != QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)) {
|
const bool canResize = (mainWidget_->maximumSize() == QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
|
||||||
style &= ~WS_MINIMIZEBOX;
|
if (mainWidget_->windowFlags().testFlag(Qt::WindowMinimizeButtonHint) && canResize) {
|
||||||
|
style |= WS_MINIMIZEBOX;
|
||||||
}
|
}
|
||||||
if (!mainWidget_->windowFlags().testFlag(Qt::WindowMaximizeButtonHint)) {
|
if (mainWidget_->windowFlags().testFlag(Qt::WindowMaximizeButtonHint) && canResize) {
|
||||||
style &= ~WS_MAXIMIZEBOX;
|
style |= WS_MAXIMIZEBOX;
|
||||||
}
|
}
|
||||||
|
|
||||||
::SetWindowLongPtr(hwnd, GWL_STYLE, style);
|
::SetWindowLongPtr(hwnd, GWL_STYLE, style);
|
||||||
|
|||||||
@ -6,9 +6,13 @@
|
|||||||
|
|
||||||
FramelessWindow::FramelessWindow(QWidget* parent)
|
FramelessWindow::FramelessWindow(QWidget* parent)
|
||||||
: QFrame(parent) {
|
: QFrame(parent) {
|
||||||
setWindowFlags(windowFlags() | Qt::Window | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint);
|
setWindowFlags(windowFlags()
|
||||||
|
| Qt::Window
|
||||||
|
| Qt::FramelessWindowHint
|
||||||
|
| Qt::WindowSystemMenuHint
|
||||||
|
| Qt::WindowMaximizeButtonHint
|
||||||
|
| Qt::WindowMinimizeButtonHint);
|
||||||
|
|
||||||
// 初始化平台相关的无边框委托,用于命中测试和缩放。
|
|
||||||
delegate_ = FramelessDelegate::Create(this);
|
delegate_ = FramelessDelegate::Create(this);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user