Window和Mac平台将窗口移动到目标窗口的下面
在工作中遇到这样一个需求,将自己的窗口跟随目标窗口移动,而且总是置于目标窗口的下面。
Mac平台使用cocoa的代码,首先获取目标窗口的句柄id,并读取bounds,然后将自己的窗口设置为相同的数值。然后设置窗口顺序。
void MoveWidgetBehind(QWidget *pwgt, long target_window_id)
{
NSWindow* window2 = [(id)(pwgt->winId()) window];
[window2 orderWindow:NSWindowBelow relativeTo:(NSInteger)target_window_id];
}
windows平台也是类似的
SetWindowPos((HWND)m_shaowWidget->winId(), (HWND)winId(), 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);