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 に答える