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);
posted @ 2018-08-15 10:25  Jax.Li  阅读(637)  评论(0编辑  收藏  举报