Qt 实现窗口置顶与取消置顶
2016-07-07 22:46
459 查看
原生的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);
}
目前还不知道怎么实现取消窗口置顶,还请知道使用的哥们分享。
我通过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);
}
相关文章推荐
- Qt---网页浏览,文件下载
- Qt之QCheckBox
- Qt之QCheckBox
- Qt之QCheckBox
- PyQt4中的Stacked Widget应用
- Qt (6) -- Qt5.5.1实现通用串口程序
- qt中的各种workaround
- 使用QT Creator 关联C/C++开源代码库
- win7_64bits下QT使用openCV库(2)
- Qt 信号和槽
- Qt总结
- QT4 交叉编译
- Qt5_qtconfig
- QT+SQLite3 基础
- Qt5_qt.conf
- Qt5_加载DLL
- Qt学习之路(32): 一个简易画板的实现(Graphics View)
- Qt学习之路(31): 一个简易画板的实现(QWidget)
- Qt5_pro_01
- Qt解析Excel文件并将数据插入远程数据库MySQL