1

给定一个继承自 QMainWindow 的窗口,如何在 Windows 中使其单边框?
我有一个检索它的窗口句柄的想法,但我不知道该怎么做。无论如何,如果有 Qt 原生的(组合)方法,将不胜感激。
提前致谢。
编辑:
我已经尝试过代码

HWND hWnd = (HWND)this->winId(); // the handle
unsigned old_styles = WS_OVERLAPPEDWINDOW & (~WS_THICKFRAME) | WS_VISIBLE;
SetWindowLongPtr(hWnd, GCL_STYLE, old_styles);
SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE   
| SWP_NOZORDER | SWP_FRAMECHANGED);
UpdateWindow(hWnd);

尽管窗口句柄是正确的,但它不起作用。

4

1 回答 1

1

为您想要访问的每个小部件设置一个 Qt::WA_NativeWindow 属性或调用其 QWidget::winId() 方法,该方法将返回您的句柄(并在此之前创建它)。

HWND hWidget = (HWND)pWidget->winId();

获取句柄,您可以更改/设置此窗口的任何标志,不是吗?据我记得,WS_BORDER 标志是负责它的标志:

WS_BORDER 0x00800000L The window has a thin-line border.
于 2013-03-27T14:14:42.900 回答