Qt 实现窗口置顶与取消置顶

原生的Qt 实现窗口置顶的方法 setWindowFlags(Qt::WindowStaysOnTopHint);

目前还不知道怎么实现取消窗口置顶,还请知道使用的哥们分享。


我通过window API实现窗口置顶与取消置顶操作,如下

HWND hwnd = (HWND)m_pCfgWnd->winId();
DWORD dwstyle = ::GetWindowLong(hwnd,GWL_EXSTYLE);
DWORD err = GetLastError();
if (dwstyle & WS_EX_TOPMOST)
{
dwstyle &= ~WS_EX_TOPMOST;
::SetWindowLong(hwnd,GWL_EXSTYLE,dwstyle);
::SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOREPOSITION|SWP_NOSIZE|SWP_SHOWWINDOW);
}
else
{
dwstyle |= WS_EX_TOPMOST;
::SetWindowLong(hwnd,GWL_EXSTYLE,dwstyle);
::SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOREPOSITION|SWP_NOSIZE|SWP_SHOWWINDOW);
}


你可能感兴趣的:(C++,VC,QT)